matplotlibs yticks我在做什么错?

时间:2019-03-20 17:23:15

标签: python python-3.x matplotlib

我的代码如下(不要询问变量名,即时德语^^):

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?

感谢您的帮助。

enter image description here

1 个答案:

答案 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)

enter image description here