1

通过足够的旋转,我的条形图列的标签会被切掉。这是一个应该说明发生了什么的示例:

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()

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

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

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

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

4

1 回答 1

2

您可以figsize=(w,h)在初始化图形时使用来控制图形大小。此外,您可以使用 asubplot和手动控制轴位置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()
于 2013-07-19T13:43:20.740 回答