Tight_Layout: ошибка атрибута.Объект «AxesSubplot» не имеет атрибута - PullRequest
0 голосов
/ 20 ноября 2018

Я хочу построить столбчатую диаграмму с данными, поступающими из двух отдельных фреймов данных в пандах (My_means и My_stds).Я использую Python 3.7.

Вызов печати работает нормально, однако метки обрезаются.Задать параметр tear_layout мне не помогает, и генерируется сообщение «Ошибка атрибута: объект AxesSubplot не имеет атрибута looplay».Что это значит и как мне это преодолеть?

Я не нашел никаких проблем, связанных с этой ошибкой, поэтому я предполагаю, что делаю что-то довольно глупое ...

Вот мой код:

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

Спасибо за вашу помощь!Джаз

1 Ответ

0 голосов
/ 20 ноября 2018

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