如果旋转足够,我的条形图列的标签就会被砍掉。这是一个可以说明发生的情况的示例:
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)
控制图形大小。此外,您可以使用 subplot
和 subplots_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/