散点图在python中绘制来自两个不同数据帧的数据

时间:2017-09-21 23:47:37

标签: python pandas matplotlib dataframe plot

我有以下格式的两个不同的数据框。

dfclean
Out[1]: 
      obj
0     682
1     101
2      33

dfmalicious
Out[2]: 
                obj
        0        17
        1        43
        2         8
        3         9
        4       211

我的用例是绘制一个散点图,它清楚地显示两个数据帧的obj值。我正在为此目的使用python。我看了几个例子,其中两列相同的数据帧用于绘制数据,但无法复制它用于我的用例。任何帮助是极大的赞赏。

How to plot two DataFrame on same graph for comparison

1 个答案:

答案 0 :(得分:1)

要在单个轴上绘制多个列组,请重复plot方法指定目标ax

选项1]

In [2391]: ax = dfclean.reset_index().plot(kind='scatter', x='index', y='obj',
                                           color='Red', label='G1')

In [2392]: dfmalicious.reset_index().plot(kind='scatter', x='index', y='obj',
                                          color='Blue', label='G2', ax=ax)
Out[2392]: <matplotlib.axes._subplots.AxesSubplot at 0x2284e7b8>

enter image description here

选项2]

In [2399]: dff = dfmalicious.merge(dfclean, right_index=True, left_index=True,
                                   how='outer').reset_index()

In [2406]: dff
Out[2406]:
   index  obj_x  obj_y
0      0     17  682.0
1      1     43  101.0
2      2      8   33.0
3      3      9    NaN
4      4    211    NaN

In [2400]: ax = dff.plot(kind='scatter', x='index', y='obj_x', color='Red', label='G1')

In [2401]: dff.plot(kind='scatter', x='index', y='obj_y', color='Blue', label='G2', ax=ax)
Out[2401]: <matplotlib.axes._subplots.AxesSubplot at 0x11dbe1d0>