情节pandas dataframe两列

Ale*_*llo 10 python matplotlib pandas

我有一个pandas数据框,其中包含日期作为索引和一些列:我想用2行绘制折线图(比如'ISP.MI'和'Ctrv'); 在x轴上,我需要'日期'

Ticker       ISP.MI  Daily returns        Ctrv  Inv_Am  Giac_Media
Date                                                                 
2016-01-01  2.90117            NaN  100.000000     100       100.0   
2016-01-04  2.80159      -0.034927  196.507301     200       150.0   
2016-01-05  2.85608       0.019263  300.292610     300       200.0   
2016-01-06  2.77904      -0.027345  392.081255     400       250.0   
2016-01-07  2.73206      -0.017050  485.396411     500       300.0   
2016-01-08  2.72267      -0.003443  583.725246     600       350.0   
Run Code Online (Sandbox Code Playgroud)

jez*_*ael 29

我认为最简单的是按子集选择列然后DataFrame.plot:

df[['ISP.MI','Ctrv']].plot()
Run Code Online (Sandbox Code Playgroud)


epa*_*aro 9

如果你不关心轴刻度:

plt.figure()

x = df['Date']
y1 = df['ISP.MI']
y2 = df['Ctrv']

plt.plot(x,y1)
plt.plot(x,y2)
Run Code Online (Sandbox Code Playgroud)

如果你关心它:

fig, ax1 = plt.subplots()

x = df['Date']
y1 = df['ISP.MI']
y2 = df['Ctrv']

ax2 = ax1.twinx()

ax1.plot(x, y1, 'g-')
ax2.plot(x, y2, 'b-')
Run Code Online (Sandbox Code Playgroud)


ale*_*ari 8

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

d = {'x' : [1,2,3,4,5,6,7,8,9,10],
     'y_one' : np.random.rand(10),
     'y_two' : np.random.rand(10)}

df = pd.DataFrame(d)

df.plot('x',y=['y_one','y_two'])
plt.show()
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

  • 我发现这种方法很有用,因为它展示了如何使用“plot()”从 DataFrame 中选择特定列并将指定列映射到 X 和 Y 轴。 (3认同)