Python Pyplot集不';I don’我没有按预期工作
我想通过指定每次跳过多少个记号来设置x记号密度。例如,如果x轴由100个连续日期标记,并且我希望每10个日期跳过一次,那么我将执行以下操作Python Pyplot集不';I don’我没有按预期工作,python,matplotlib,plot,Python,Matplotlib,Plot,我想通过指定每次跳过多少个记号来设置x记号密度。例如,如果x轴由100个连续日期标记,并且我希望每10个日期跳过一次,那么我将执行以下操作 import numpy as np import pandas as pd import matplotlib.pyplot as plt ts = pd.period_range("20060101", periods=100).strftime("%Y%m%d") y = np.random.randn(100) ax = plt.subplot(1
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
ts = pd.period_range("20060101", periods=100).strftime("%Y%m%d")
y = np.random.randn(100)
ax = plt.subplot(1, 1, 1)
ax.plot(ts, y)
xticks = ax.get_xticks()
ax.set_xticks(xticks[::10])
plt.xticks(rotation="vertical")
plt.show()
然而,输出是不合适的。Pyplot仅拾取前几个记号,并将它们全部放置在错误的位置,尽管间距是正确的:
我可以做些什么来获得所需的输出?也就是说,刻度应改为:
['20060101' '20060111' '20060121' '20060131' '20060210' '20060220'
'20060302' '20060312' '20060322' '20060401']
@克里姆的回答似乎在轴上打上了正确的标记,但标签仍然不会显示出来。日期轴正确标记但没有标签的示例:
同时设置XTicklabel。像这样
xticks = ax.get_xticks()
xticklabels = ax.get_xticklabels()
ax.set_xticks(xticks[::10])
ax.set_xticklabels(xticklabels[::10], rotation=90)
忘记上面这些,这是行不通的 这个怎么样
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
ts = pd.period_range("20060101", periods=100).strftime("%Y%m%d")
x = np.arange(len(ts))
y = np.random.randn(100)
ax = plt.subplot(1, 1, 1)
ax.plot(x, y)
ax.set_xticks(x[::10])
ax.set_xticklabels(ts[::10], rotation="vertical")
plt.show()
这在我的机器上起作用。在这种情况下,记号似乎被正确返回(因为网格线的间距正确),但标签不会显示。好的,它现在起作用了。谢谢不知怎的,刚才出现了一个小故障,我不知道为什么还有另一个小故障。。。x轴上的比例似乎正常,但标签不会显示。。