我的图表还可以,并且我一直遵循文档来创建共享的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()
有人知道需要解决什么问题,以便在x轴上有一个market
标签,在y轴上有一个apps
标签吗?
答案 0 :(得分:1)
实际上,您确实是最初使用plt.subplots()
创建了具有共享x和y的子图。但是随后您将使用连续的命令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()