matplotlib - 刻度标签周围的填充
问题描述
我正在做一个条形图。
sns_plot = sns.barplot(years, yields, ax=axes[0, 0])
sns_plot.set_xticklabels(years, rotation=90)
sns_plot.xaxis.set_tick_params(pad=10)
但是文字太啰嗦了。即需要标签之间的分离。我怎样才能做到这一点?pad=10
似乎从轴上推标签,而不是单独的标签。
在标签垂直(90 度)之后,它们仍然有点聚拢。我想找到合适的杠杆来拉...
解决方案
测试数据:
In [1]:
import numpy as np
import re
x = """Lorem ipsum dolor sit amet, consectetur adipiscing
elit, sed do eiusmod tempor incididunt ut labore et dolore
magna aliqua. Cras nibh turpis, ullamcorper ac lectus vel,
aliquet consectetur odio. Cras vel scelerisque tortor.
Interdum et malesuada fames ac ante ipsum primis in faucibus.
Proin id dignissim ante, a dictum ipsum. Fusce at lacus ac purus
pulvinar dignissim eget a quam. Sed quis mollis ligula, sed
ullamcorper velit. Curabitur vel congue metus. Ut placerat
ipsum non leo posuere, non vestibulum eros posuere.
Donec eu viverra augue, sit amet tempus ex. Vivamus
sit amet tempus ipsum. Fusce consequat, augue a mollis
hendrerit, quam neque dapibus ligula, vitae blandit ipsum
lorem eu mauris. """
x = pd.Series(x.split(' '))
x = x.apply(lambda x: re.sub('\W+', '', x))
y = np.random.randn(x.shape[0])
df = pd.DataFrame({'X': x, 'Y': y})
df.head()
Out [1]:
X Y
0 Lorem -0.562246
1 ipsum 1.085094
2 dolor 1.044887
3 sit -1.424002
4 amet -0.87682
测试图:
In [2]:
import matplotlib.pyplot as plt
fig, ax = plt.subplots(1, 1, figsize=(9, 6))
ax.plot(df.X, df.Y, 'ks')
ax.tick_params(axis='x', rotation=90)
Out [2]:
因此,要总结对原始帖子的评论,有多种方法可以删除杂乱的刻度标签,您有多种选择:
1) 较小的标签文本:ax.tick_params(axis='x', labelsize=6)
2)更少的标签:
for label in ax.xaxis.get_ticklabels()[::2]:
label.set_visible(False)
推荐阅读
- python - SARIMAX 没有结果
- mongodb - CosmosDB - Mongodb IsUpsert 不适用于批量更新
- reactive-programming - 反应式扩展最基本的运算符是什么?
- c++ - 在 C++ 中编写初始化类
- plot - 较低的时间框架成交量条
- python - 在分隔符旁边拆分字符串
- javascript - 播放视频或 gif 10 秒,暂停,单击按钮,播放 3 秒并跳转到视频中的另一个时间戳并播放设定的持续时间
- rust - 如何创建返回平面图的特征
- pie-chart - 有没有办法消除这个错误“尝试应用非功能”
- reactjs - 在反应中处理参照完整性约束