在Pandas中的一个图中绘制2个数据帧

时间:2017-07-22 14:41:23

标签: python pandas matplotlib plot

嘿我想在Pandas的一个图中绘制2个DataFrame。

我的DataFrame看起来像这样(摘自DataFrame):

       Timestamp  Distance     Speed  Heart Rate   Pace
1          0.0      3.02  2.353079          89  425.0
2          1.0      5.10  1.847000          92  541.0
3          2.0      7.48  1.969000          96  508.0
4          4.0     14.13  2.902000          93  345.0
5         10.0     28.01  2.967000          96  337.0
6         11.0     30.96  2.995000         101  334.0
7         12.0     33.79  2.995000         104  334.0
8         13.0     36.56  2.967000         114  337.0

它们都有不同数量的项目,但格式相同。

Right now it looks like this

我正在使用此代码进行绘图。

ax = dataframe1[['Speed','Heart Rate','Pace']].plot(subplots=True,
                                               title=['Speed in m/s','Heart Rate in bmp','Pace in min/km',],
                                               x=dataframe1['Timestamp'],)

我现在要做的是将DateFrame2中的HeartRate绘制在与DataFrame1的HeartRate相同的子图中(以不同的颜色),但我不知道如何。

2 个答案:

答案 0 :(得分:3)

考虑以下方法:

fig, axes = plt.subplots(nrows=3, ncols=1)    
plt.subplots_adjust(wspace=0.5, hspace=0.5);

x = dataframe1.set_index('Timestamp').rename_axis(None)    
x['Speed'].plot(ax=axes[0], title='Speed in m/s', legend=True)
x['Heart Rate'].plot(ax=axes[1], title='Heart Rate in bmp', legend=True)
x['Pace'].plot(ax=axes[2], title='Pace in min/km', legend=True)

dataframe1['Heart Rate'] * 2模拟为dataframe2['HeartRate']

x[['Heart Rate']].rename(columns={'Heart Rate':'Heart Rate2'}).mul(2).plot(ax=axes[1], legend=True)

结果:

enter image description here

答案 1 :(得分:1)

您需要首先join数据帧:

dataframe1['Heart Rate2'] = dataframe2['Heart Rate']
dataframe1[['Speed','Heart Rate','Pace', 'Heart Rate2']].plot()