python - 使用字符串时,如何使用 matplotlib 更改 x 轴间隔?
问题描述
我有一个以这种方式绘制的数据框“道路”(所以是一个带点的图表):
ax = roads.plot(x='Link_no', y='Road_quality_index', style='o')
x 轴是字符串形式的链接编号(这些是路段编号)。现在,python 会自动保留其中一些字符串(十分之九)以保持可读性。但是,我想显示更少的 x 轴点,只有大约 20 个点中的 1 个。
在网上,大多数人提到使用 plt.yticks。但是,我相信这只有在您使用整数或浮点数时才有可能。
有人可以帮助我们吗?
解决方案
您可以获取当前的刻度,对其重新采样,并将稀疏列表设置为新的刻度。下面作为示例,我通过检查 mod(index(a),20)==0 进行采样,这对于每 20 个标签中的 1 个标签是正确的。
# current x labels
current_ticks = ax.get_xticklabels()
# resampling every other label, change mod(20) to sample less
custom_ticks = [a.get_text() for a in current_ticks if current_ticks.index(a)%20==0]
# set as new labels
ax.set_xticks(custom_ticks)
ax.set_xticklabels(custom_ticks)
推荐阅读
- javascript - Javascript 在 Firefox 中扮演多头角色
- ruby-on-rails - rails 一个由两个控制器处理的搜索字段
- python - 使用 Python 使用多个正则表达式进行列表理解
- java - 当 JAVA_HOME 的确切路径在同一个地方工作时,为什么 JAVA_HOME 在 Path 中失败?
- reactjs - 更改字体系列 Material-UI
- ruby-on-rails - Vue-Multiselect显示对象而不是“名称”字段
- html - 输入电话号码验证模式
- javascript - 添加css以将表格格式化为网格
- javascript - 如何让onclick显示php文件的内容
- python - 如何创建表并选择数据库中的任何列?