我想绘制一个堆积条形图,其中的数据来自熊猫中两个单独的数据框(My_means和My_stds)。我正在使用Python 3.7。
绘图调用工作正常,但是标签已被切除。设置tight_layout对我没有帮助,并生成“属性错误:'AxesSubplot'对象没有属性'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()
感谢您的帮助! 爵士
答案 0 :(得分:2)
My_means.plot(…)
返回轴对象。 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()