我正在尝试使用 matplotlib 和 pandas 创建一个包含多个子图的分组条形图。我可以根据数据帧的值手动定义图来创建它,但我想通过循环使其自动化。我尝试了很多方法来循环,但每次都会遇到一个或其他错误。作为编程和python的初学者,我迷路了。这是我的数据:sales3
我为获得预期输出而编写的代码:
sales3 = sales.groupby(["Region","Tier"])[["Sales2015","Sales2016"]].sum().round().astype("int64")
sales3.reset_index(inplace=True)
fig,(ax1,ax2,ax3) = plt.subplots(nrows=1,ncols=3,sharex=True,sharey=True,figsize=(10,6))
sales3[sales3["Region"]=="Central"].plot(kind="bar",x="Tier",y=["Sales2015","Sales2016"],ax=ax1)
ax1.set_title("Central")
sales3[sales3["Region"]=="East"].plot(kind="bar",x="Tier",y=["Sales2015","Sales2016"],ax=ax2)
ax2.set_title("East")
sales3[sales3["Region"]=="West"].plot(kind="bar",x="Tier",y=["Sales2015","Sales2016"],ax=ax3)
ax3.set_title("West")
plt.tight_layout()
输出: 预期输出
请指导我如何使用循环或任何自动方式编写它。比如说,我将来会添加另一个区域,例如“North”/“South”,或者引入了新的 Tier,什么是最好的编程方式来适应这些新增内容。