Как использовать pandas черчение с подзаговорами. ax = df.plot () или df.plot (ax = ax1). какая разница - PullRequest
0 голосов
/ 11 апреля 2020

Я создал две оси на фигуре с помощью matplotlib и попытался построить данные. Один метод работал, а другой нет. Мой вопрос: почему это не сработало и в чем разница между ними?

Тот, который не работал:

fig,ax=plt.subplots(2,figsize=(15,6))
ax[0]=df['Global_Sales'].head(10).plot(kind='bar')
ax[0].set_xlabel('different games')
ax[0].set_ylabel('Sales')
ax[1]=df['Critic_Score'].head(10).plot(kind='bar')
ax[1].set_xlabel('different games')
ax[1].set_ylabel('Critic Score')
plt.tight_layout()
plt.show()

Здесь первые оси остаются пустыми, а вторая ось перезаписывается

Тот, который работал:

fig,ax=plt.subplots(2,figsize=(15,6))
df['Global_Sales'].head(10).plot(kind='bar',ax=ax[0])
ax[0].set_xlabel('different games')
ax[0].set_ylabel('Sales')
df['Critic_Score'].head(10).plot(kind='bar',ax=ax[1])
ax[1].set_xlabel('different games')
ax[1].set_ylabel('Critic Score')
plt.tight_layout()
plt.show()

показал оба графика на обеих осях должным образом.

1 Ответ

0 голосов
/ 11 апреля 2020

Ваш первый пример не дал ожидаемого результата, поскольку вы не передали объекты осей, сгенерированные с помощью вызова plt.subplots, на вызов pandas .plot. Ваш второй пример дал результат, который вы ожидали, потому что вы передали объекты осей, сгенерированные с помощью вызова plt.subplots, на вызов pandas .plot.

Короче говоря, если вы хотите, чтобы вызов pandas .plot отображался на определенной оси (скажем, ax1), вам нужно передать объект этой оси в вызов .plot в качестве аргумента ключевого слова. : df.plot(ax=ax1)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...