我分别有两个图,我想在同一图上显示它们。
这是我的剧情1代码
ax1= concatenated_data_cleaned.groupby(['Cat1', 'Cat2']).median()[['Measure']].unstack()
ax1.plot.bar(rot =0)
plt.xlabel("Cat Names")
plt.ylabel("Measures")
plt.title("Title 1")
plt.show()
这是我的剧情2代码,
ax2= concatenated_data_cleaned.groupby(['Cat2', 'Cat1']).median()[['Measure']].unstack()
ax1.plot.bar(rot =0)
plt.xlabel("Cat Names")
plt.ylabel("Measures")
plt.title("Title 2")
plt.show()
现在,这一张一张接一张地显示在不同的图形(图像)中。如何在同一个图表中显示此图片-在同一个图表中的另一个图片下面?
请帮助我。
这就是我正在尝试的,
fig, axes = plt.subplots(nrows=2)
df1= concatenated_data_cleaned.groupby(['Cat1', 'Cat2']).median()[['Measure']].unstack()
ax1 = df1.plot.bar(rot =0)
df2= concatenated_data_cleaned.groupby(['Cat2', 'Cat1']).median()[['Measure']].unstack()
ax2 = df2.plot.bar(rot =0)
ax1.plt.bar(rot=0, ax=axes[0])
ax2.plt.bar(rot=0, ax=axes[1])
plt.show()
它对我不起作用。
答案 0 :(得分:2)
您的变量命名有点不合常规。 ax
通常用于matplotlib Axes对象。这里有一个数据框。
无论如何,您应该设置一个带有两个轴的图形。 plt.subplots
是执行此操作的简便方法。它将返回图形和包含您创建的所有轴的数组。您甚至可以使用sharex
和sharey
将轴设置为相等。对每个数据框在绘图调用中使用轴对象:
df1= concatenated_data_cleaned.groupby(['Cat1', 'Cat2']).median()[['Measure']].unstack()
df2= concatenated_data_cleaned.groupby(['Cat2', 'Cat1']).median()[['Measure']].unstack()
fig, axes = plt.subplots(nrows=2, sharex=True, sharey=True)
df1.plot.bar(rot=0, ax=axes[0])
df2.plot.bar(rot=0, ax=axes[1])
axes[0].set_title('Title 0')
axes[1].set_title('Title 1')
plt.show()