sharex и sharey не создают метки общих осей для участков - PullRequest
0 голосов
/ 13 мая 2019

С моими диаграммами все в порядке, и я следовал документации для создания общих меток x и y, так как мне нужен более чистый подзаговор, но параметры, переданные в subplots(), работают неправильно.

код:

fig, axs = plt.subplots(3, 2, sharex=True, sharey=True, figsize=(10,10))

plt.subplot(3, 1, 1)
plt.title('20 highest paid app markets, april 4/4-4/10')
dd_404_410.groupby('market').period_paid_apps.mean().sort_values(ascending=False).nlargest(10).plot(kind='bar', color='darkgrey')
plt.ylabel('apps')
plt.xticks(rotation=45)

plt.subplot(3, 1, 2)
plt.title('20 highest paid app markets, april 4/11-4/17')
dd_411_417.groupby('market').period_paid_apps.mean().sort_values(ascending=False).nlargest(10).plot(kind='bar', color='darkgrey')
plt.ylabel('apps')
plt.xticks(rotation=45)

plt.subplot(3, 1, 3)
plt.title('20 highest paid app markets, april 4/18-4/26')
plt.ylabel('apps')
dd_418_426.groupby('market').period_paid_apps.mean().sort_values(ascending=False).nlargest(10).plot(kind='bar', color='darkgrey')
plt.xticks(rotation=45)

plt.tight_layout()
plt.show()

enter image description here

Кто-нибудь знает, что нужно исправить, чтобы у меня была одна метка market на оси x и одна метка apps на оси y?

1 Ответ

1 голос
/ 13 мая 2019

Вы действительно изначально создали субплоты с общими x и y, используя plt.subplots(). Но затем вы перезаписываете оси последовательными командами plt.subplot() (обратите внимание на отсутствие s в конце).

Так вы, вероятно, должны это делать (не проверялось, поскольку у меня нет ваших данных)

fig, (ax1, ax2, ax3) = plt.subplots(3, 1, sharex=True, sharey=True, figsize=(10,10))

ax1.set_title('20 highest paid app markets, april 4/4-4/10')
ax1.set_ylabel('apps')
<YOUR DATAFRAME>.plot(kind='bar', color='darkgrey', ax=ax1)

ax2.set_title('20 highest paid app markets, april 4/11-4/17')
ax2.set_ylabel('apps')
<YOUR DATAFRAME>.plot(kind='bar', color='darkgrey', ax=ax2)

ax3.set_title('20 highest paid app markets, april 4/18-4/26')
ax3.set_ylabel('apps')
<YOUR DATAFRAME>.plot(kind='bar', color='darkgrey', ax=ax3)

plt.xticks(rotation=45)

plt.tight_layout()
plt.show()
...