使用pandas/matplotlib绘图时,轴刻度标签被截断

3
我将使用pandas(背景中的matplotlib)创建一些直方图。
我大致如下进行:
output = StringIO.StringIO()
plot_canvas = matplotlib.pyplot.figure()
ax = plot_canvas.add_subplot(1, 1, 1)

series = df[key].value_counts()[:nums]
fig = series.plot(ax=ax, kind="bar", colormap="Blues",
                  legend=False,
                  stacked=False,
                  title="Numbers of %s" % key,
                  grid=True).get_figure()
fig.savefig(output, format="png")
o_data = output.getvalue()
output.close()
image_data = o_data.encode("base64")
image_uri = 'data:image/png;base64,%s' % image_data

我的问题是,X轴数据是一些较长的名称(字符串),在默认设置下会被截断。因此,我想知道如何移动图形在绘图区域中,以获得更多的空间来显示完整的名称。

enter image description here

可以看到X轴上的字符串被截断了。

1个回答

2

有一个简单的自动化方法解决方案:

plot_canvas.tight_layout()

你也可以在创建子图时定义轴矩形,通过向add_subplot传递一个 rect 关键字参数,格式为[left, bottom, width, height].


2
如果你已经执行了 import matplotlib.pyplot as plt,你也可以通过 plt.tight_layout() 访问它。 - drevicko
类似这样的代码应该可以工作:plt.tight_layout(rect=(0, 0.25, 1, 1)) - Philippe Remy
plt.tight_layout() 被调用的位置有关系吗? - jtlz2

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接