【发布时间】:2018-07-05 11:52:08
【问题描述】:
matplotlib 图表的 x 轴上的刻度标签有点拥挤,所以我正在考虑降低标签出现的频率。似乎有一些功能(multiplelocator,maxnlocator),但这些只是将现有标签隔开,而不是跳过任何实际标签。例如,如果我运行这个
df = pd.DataFrame(columns=['bond 1','bond 2'],
index=[2017,2018,2019,2020,2021,2022])
df['bond 1'] = [4,5,6,6,5,4]
df['bond 2'] = [8,6,4,4,6,8]
fig,ax=plt.subplots(1)
ax = df.plot(ax=ax, kind='bar', colormap='copper')
locator = tick.MultipleLocator(base=2)
ax.xaxis.set_major_locator(locator)
就格式而言,这看起来不错,但数据点实际上被错误标记了——它说 2018 年实际上是 2017 年的数据,它说 2020 年是 2021 年的数据。
谁能告诉我是否有任何简单的方法可以将标签隔开而不会将它们映射到错误的数据点上?
谢谢!
【问题讨论】:
-
我不知道定位器,但在this answer 中有一种方法可以做到这一点。适应你的例子:
for label in ax.xaxis.get_ticklabels()[1::2]:然后label.set_visible(False)。 -
@ThomasKühn:谢谢,这实际上是一个很好的解决方法。
-
好的,如果这对您有帮助,您介意我将其标记为重复吗(即使它不是
Locator解决方案)? -
@ThomasKühn 是的,当然 - 随便你怎么想。
标签: python pandas matplotlib