我对matplotlibs yticks有什么错?

2024-05-28 19:47:51 发布

您现在位置:Python中文网/ 问答频道 /正文

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

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


Tags: 代码importmatplotlibasnppltaxpop
1条回答
网友
1楼 · 发布于 2024-05-28 19:47:51

我发现的问题是你的值是字符串。在列表中存储时,可以将它们转换为浮点数。然后可以设置轴限制。请注意,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

相关问题 更多 >

    热门问题