【发布时间】:2017-11-27 04:54:15
【问题描述】:
我必须从 2 个具有不同列的 df 中绘制 2 个子图。我想得到包含两者所有列的通用图例,类似于下面的示例。
d1 = pd.DataFrame({ #without one
'two' : [-1.,- 2.,- 3., -4.],
'three' : [4., 3., 2., 1.],
'four' : [4., 3., 4., 3.]})
tot_1=d1.sum(axis=1)
d2 = pd.DataFrame({'one' : [1., 2., 3., 4.],
'two' : [4., 3., 3., 1.],
'three' : [-1., -1., -3., -4.],
'four' : [4., 3., 2., 1.]})
tot_2=d2.sum(axis=1)
fig, ax = plt.subplots(nrows=2, ncols=1)
#plot 1
d1.plot.area(stacked=True,legend=False,ax=ax[0])
tot_1.plot(linestyle='-', color='black',legend=False,ax=ax[0])
###SECOND GRAPH####
ax3 = ax[1].twiny()
#plot 2
d2.plot.area(stacked=True,legend=False,ax=ax[1],sharex=ax[0])
tot_2.plot(linestyle='-',color='black',legend=False,ax=ax[1])
plt.show()
问题在于两个数据框/绘图中的列不完全相同(两者都不同),并且应确保图例具有两个绘图中的所有列和颜色并且图例匹配.
如果我可以为每列选择颜色,则更好(但不是必需),例如使用带有col_name:color 的字典来传递
【问题讨论】:
-
你看到这个答案了吗(编辑过的)stackoverflow.com/a/31548279/1675954这里有一个类似(但不同)的解决方案stackoverflow.com/a/36532501/1675954
标签: python pandas matplotlib plot visualization