Tight_Layout: 属性错误。 'AxesSubplot' 对象没有属性 'tight_layout'

Tight_Layout: Attribute Error . 'AxesSubplot' object has no attribute 'tight_layout'

我想绘制一个堆积条形图,其中的数据来自 pandas(My_means 和 My_stds)中的两个独立数据框。我正在使用 Python 3.7.

绘图调用工作正常,但是标签被截断了。设置 tight_layout 对我没有帮助并生成 "Attribute Error: 'AxesSubplot' object has no attribute 'tight_layout'"。这是什么意思,我该如何克服呢?

我没有发现与此错误相关的任何问题,所以我认为我在做一些相当愚蠢的事情...

这是我的代码:

My_means= ratios.pivot_table('Data', 'Sample ID', 'User ID', aggfunc= np.mean)
My_stds= ratios.pivot_table('Data', 'Sample ID', 'User ID', aggfunc= np.std)
plot_it = My_means.plot(kind='bar', color=stack_cols, stacked=True, yerr=My_stds, capsize=3, title='Just some graph')
plot_it.tight_layout()

感谢您的帮助! 爵士

My_means.plot(…) returns 一个轴对象。而 tight_layout 需要一个图形对象。您可以使用多种不同的方法:

也许最简单的方法是使用 plt.tight_layout(),它适用于当前图形:

import matplotlib.pyplot as plt
# Your plotting code here
plt.tight_layout()

或者,您可以预先创建图形和轴,将轴作为参数传递给 plot,然后在图形对象上使用 tight_layout

import matplotlib.pyplot as plt

fig, ax = plt.subplots()
plot_it = My_means.plot(kind='bar', ax=ax, …)

fig.tight_layout()