【发布时间】:2018-11-27 11:56:25
【问题描述】:
我有两个具有相同列但内容不同的数据框。
我已经绘制了dffinal data frame。现在我想在同一张图上绘制另一个数据框dffinal_no 以进行比较。
例如blue colour 中的一个条形图,以及带有另一种颜色的相同条形图只是differentiating in y-axis。
这是我绘制第一个数据框的代码的一部分。
dffinal = df[['6month','final-formula','numPatients6month']].drop_duplicates().sort_values(['6month'])
ax=dffinal.plot(kind='bar',x='6month', y='final-formula')
import matplotlib.pyplot as plt
ax2 = ax.twinx()
dffinal.plot(ax=ax2,x='6month', y='numPatients6month')
plt.show()
现在假设我有另一个具有相同列的 dffinal_no 数据框,我如何将它绘制在同一张图中?
这是我绘制的第一张图表,我希望这张图表上的另一个条形图带有另一种颜色。
所以@Mohamed Thasin ah 的答案是我想要的,除了右 y 轴不正确。
我希望both data frame 基于(6month, final-formula),但右侧的y-axis 只是显示患者数量,作为用户信息。
其实我DO NOT希望第一个df基于final-fomula,第二个df基于NumberPatients。
Update1 作为参考,它看起来像我的数据框
dffinal = df[['6month','final-formula','numPatients6month']].drop_duplicates().sort_values(['6month'])
nocidffinal = nocidf[['6month','final-formula','numPatients6month']].drop_duplicates().sort_values(['6month'])
fig = plt.figure()
ax1 = fig.add_subplot(111)
ax2 = ax1.twinx()
ax1.set_ylabel('final-formula')
ax2.set_ylabel('numPatients6month')
width=0.4
nocidffinal=nocidffinal.set_index('6month').sort_index()
dffinal=dffinal.set_index('6month').sort_index()
nocidffinal['final-formula'].plot(kind='bar',color='green',ax=ax1,width=width,position=0)
dffinal['numPatients6month'].plot(kind='bar',color='red',ax=ax2,width=width,position=1)
dffinal content
,6month,final-formula,numPatients6month
166047.0,1,7.794117647058823,680
82972.0,2,5.720823798627003,437
107227.0,3,5.734767025089606,558
111330.0,4,4.838709677419355,434
95591.0,5,3.3707865168539324,534
95809.0,6,3.611738148984198,443
98662.0,7,3.5523978685612785,563
192668.0,8,2.9978586723768736,467
89460.0,9,0.9708737864077669,515
192585.0,10,2.1653543307086616,508
184325.0,11,1.727447216890595,521
85068.0,12,1.0438413361169103,479
nocidffinal
,6month,final-formula,numPatients6month
137797.0,1,3.5934291581108826,974
267492.0,2,2.1705426356589146,645
269542.0,3,2.2106631989596877,769
271950.0,4,2.0,650
276638.0,5,1.5587529976019185,834
187719.0,6,1.9461077844311379,668
218512.0,7,1.1406844106463878,789
199830.0,8,0.8862629246676514,677
269469.0,9,0.3807106598984772,788
293390.0,10,0.9668508287292817,724
254783.0,11,1.2195121951219512,738
300974.0,12,0.9695290858725761,722
【问题讨论】:
-
感谢您的回复,实际上与我的情况相比,它非常简单。但我会试一试,让你知道:)
-
@inspired_learner 感谢您的回复,遗憾的是我无法将该示例应用于我的案例。我的是熊猫,我已经有两个轴了。如果您需要更多信息,请告诉我。为响应欢呼
标签: pandas dataframe matplotlib group-by data-analysis