我的代码如下(不要询问变量名,即时德语^^):
import matplotlib.pyplot as plt
import numpy as np
strecke = []
zeit = []
daten = open("BewegungBeschleunigung.csv")
for i in daten:
i = i.strip().split(",")
strecke.append(i[1])
zeit.append(i[0])
zeit.pop(0)
strecke.pop(0)
f, ax = plt.subplots()
ax.set_xticks(np.arange(0, 100 + 1, 5))
ax.set_yticks(np.arange(0,6000, 10))
ax.set_xlabel("Zeit")
ax.set_ylabel("Strecke")
plt.plot(zeit, strecke, "go")
#plt.autoscale(enable = False, axis = "both", tight = None)
plt.grid(True)
plt.show()
现在我的问题是:从图片中可以看到,y轴仅到达4860,而不是我写的6000,而不是10个步骤(如我所愿)。它只是随机地进行。我在做什么错,为什么x轴不转到100?
感谢您的帮助。
答案 0 :(得分:0)
我发现的问题是您的值是字符串。您可以将它们存储在列表中时将其转换为浮点数。然后可以设置轴限制。请注意,np.arange(0,6000, 10)
将产生600个滴答声。这会使您的y轴拥挤。
for i in daten:
i = i.strip().split(",")
strecke.append(float(i[1]))
zeit.append(float(i[0]))
zeit.pop(0)
strecke.pop(0)
f, ax = plt.subplots()
ax.set_xlabel("Zeit")
ax.set_ylabel("Strecke")
ax.plot(zeit, strecke, "go")
ax.set_xlim(0, 100)
ax.set_ylim(0, 6000)
ax.grid(True)