python - 防止 x 轴标签在 matplotlib/pyplot 中被截断

标签 python matplotlib

如果旋转足够,我的条形图列的标签就会被砍掉。这是一个可以说明发生的情况的示例:

import matplotlib.pyplot as plt

x = [1,2,3]
y = [2,3,4]
s = ['long_label_000000000','long_label_000000001','long_label_000000002']
plt.bar(x,y)
plt.xticks(range(len(s)),s, rotation=90)
plt.show()

我知道执行以下操作会导致图表根据 Canvas 大小自动调整:

from matplotlib import rcParams 
rcParams.update({'figure.autolayout':True})

但是,这会调整图表的高度以适应标签(包括在标签足够大的情况下生成看起来被压扁的图表),而且我宁愿保持统一的图表尺寸。

如果标签被切碎,任何人都可以推荐一种仅扩展 Canvas 底部的方法吗?谢谢。

最佳答案

初始化图形时,您可以使用 figsize=(w,h) 控制图形大小。此外,您可以使用 subplotsubplots_adjust 手动控制轴位置:

w = 12 # width in inch
h = 12 # height in inch

fig = plt.figure(figsize=(w,h))

ax = fig.add_subplot(111)
plt.subplots_adjust(bottom=0.25)

x = [1,2,3]
y = [2,3,4]
s = ['long_label_000000000','long_label_000000001','long_label_000000002']
ax.bar(x,y)
ax.set_xticks(range(len(s)))
ax.set_xticklabels(s,rotation=90)
plt.show()

关于python - 防止 x 轴标签在 matplotlib/pyplot 中被截断,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17747321/

相关文章:

python - njit numba 函数的高级索引替代方案

python - Django 持久数据库连接

python - 如何使 matplotlib 极坐标图中的角度顺时针旋转,顶部为 0°?

python - Matplotlib。无法更改第二个 y 轴上的刻度

python - 如何检测是否为matplotlib轴生成了双轴

python - save() 上的 Django Rest Framework 完整性错误,is_valid() 返回 true

python - Firebase .validate 无法按预期使用 $location

python - 使用seaborn深色主题并删除条形图中条形之间的间隙

python - 在 Matplotlib 中将文本旋转到对数刻度上的一条线上

python - Matplotlib:获取和设置轴位置