gpt4 book ai didi

python - Pyplot set_xticks 无法按预期工作

转载 作者:太空宇宙 更新时间:2023-11-03 14:02:09 25 4
gpt4 key购买 nike

我想通过指定每次跳过多少个刻度来设置 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 仅选取前几个刻度并将它们全部放置在错误的位置,尽管间距是正确的:

enter image description here

我该怎么做才能获得所需的输出?即刻度线应该是:

['20060101' '20060111' '20060121' '20060131' '20060210' '20060220'
'20060302' '20060312' '20060322' '20060401']

@klim 的答案似乎在轴上放置了正确的标记,但标签仍然不会显示。日期轴已正确标记但没有标签的示例:

enter image description here

最佳答案

还设置 xticklabels。像这样。

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()

这适用于我的机器。

关于python - Pyplot set_xticks 无法按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49167011/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com