matplotlib - 删除每个 2nd xtick 标签仅适用于前 6 个刻度
问题描述
我有一个简单的折线图,但 xticks 是重叠的。因此,我只想显示每第二个 xtick。我在另一个图表中实现了这个对我有用的答案。正如您在下面看到的,它在第 6 次滴答后停止工作,我无法理解为什么。
我的代码如下:
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
(等等)
结果图:
任何帮助是极大的赞赏 :)
解决方案
正如用户@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)
推荐阅读
- powershell - 删除所有包含重复单词的行
- android - 无法找到在 Firebase 测试实验室上运行的 Espresso 脚本中检测不同设备的相机按钮的解决方案
- python - 为什么不能在 python 多处理中腌制方法?
- powershell - 结合Powershell脚本调用函数并获取AD属性值
- openapi - 使用 dredd 验证 OpenAPI 响应
- html - VoiceOver 朗读隐藏元素
- javascript - 如何编译和评估对象上指定的逻辑运算符和操作数?
- javascript - 这个 filterSystem 函数有什么问题
- c - 分叉其他进程的 C 守护进程
- jenkins - 在 jenkinsfile 中使用主动选择反应参数