Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/352.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Pyplot集不';I don’我没有按预期工作_Python_Matplotlib_Plot - Fatal编程技术网

Python Pyplot集不';I don’我没有按预期工作

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

我想通过指定每次跳过多少个记号来设置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, 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轴上的比例似乎正常,但标签不会显示。。