Matplotlib 每2次移除一次xtick标签仅适用于前6个刻度
我有一个简单的线图,但是XTICK是重叠的。因此,我只希望每2次单击显示一次。我在另一个图中实现了这一点。正如你在下面看到的,它在第六次滴答声后停止工作,我不知道为什么 我的代码如下:Matplotlib 每2次移除一次xtick标签仅适用于前6个刻度,matplotlib,line-plot,Matplotlib,Line Plot,我有一个简单的线图,但是XTICK是重叠的。因此,我只希望每2次单击显示一次。我在另一个图中实现了这一点。正如你在下面看到的,它在第六次滴答声后停止工作,我不知道为什么 我的代码如下: data = pf.cum_perc fig, ax = plt.subplots(figsize=(10, 6)) ax.set_xlabel("Days", size=18) ax.set_ylabel("Share of reviews", size = 18) for label in ax.xaxis.
data = pf.cum_perc
fig, ax = plt.subplots(figsize=(10, 6))
ax.set_xlabel("Days", size=18)
ax.set_ylabel("Share of reviews", size = 18)
for label in ax.xaxis.get_ticklabels()[1::2]:
label.set_visible(False)
ax.plot(data)
pf.cum_perc是数据帧(因此是一个系列)的一列,包含以下数据:
1 0.037599
2 0.089759
3 0.203477
4 0.302451
5 0.398169
6 0.486392
7 0.533514
8 0.538183
9 0.539411
10 0.550040
11 0.550716
12 0.553050
13 0.553726
14 0.654789
15 0.681084
16 0.706211
17 0.731462
18 0.756712
19 0.781594
20 0.807766
21 0.873687
(等等)
生成的图形:
非常感谢您的帮助:)如user@ImportanceOfBeingErnest所建议: 解决方案1: 将x轴数据转换为数字,以便matplotbib自动处理刻度。在我的情况下,这是由
pf.index = pf.index.map(int)
解决方案2:
打印图形后,请删除记号,否则对象还不存在,因此无法设置为不可见。
新代码如下所示:
data = pf.cum_perc
fig, ax = plt.subplots(figsize=(10, 6))
ax.set_xlabel("Days", size=18)
ax.set_ylabel("Share of reviews", size = 18)
ax.plot(data)
for label in ax.xaxis.get_ticklabels()[1::2]:
label.set_visible(False)
打印后需要将标签设置为不可见;否则,仅将轴中没有任何线图的标签设置为不可见,而不是添加线后创建的标签。然而,通常考虑绘制数字,而不是字符串-这将自动勾出有用的刻度间距和标签的轴。谢谢!两种解决方案都奏效了。你想制定一个答案让我接受吗?