2015-10-06 185 views
1

我在同一段时间内有两条折线图(GMCR股票价格和S & P 500)。由于S & P 500昨日收于1,987,GMCR收于54.65,因此我有单独的Y轴价格。我的问题是如何让两条线共享相同的日期x轴?如何获得两个折线图(使用单独的y轴),共享相同的日期x轴?

import pandas as pd 
from pandas import DataFrame 
from matplotlib import pyplot as plt 
import pandas.io.data as web 
import datetime as dt 

end = dt.datetime.today() 
df = web.DataReader('GMCR', 'yahoo', '2007-01-01', end) 
sp = web.DataReader('^GSPC', 'yahoo', '2007-01-01', end) 

fig, ax1 = plt.subplots() 
ax2 = ax1.twinx() 
ax1.plot(df['Close'],'g-') 
ax2.plot(sp['Close'],'b-') 

plt.show() 

回答

1

当您将绘图函数直接应用于数据框时,您可以通过指定'secondary_y = True'来添加辅助轴。 通过在调用绘图函数时指定坐标轴(在上面的代码中,您有两个坐标轴ax1和ax2而不是唯一坐标轴),您可以强制图形位于同一轴上。

import pandas as pd 
from pandas import DataFrame 
from matplotlib import pyplot as plt 
import pandas.io.data as web 
import datetime as dt 

end = dt.datetime.today() 
df = web.DataReader('GMCR', 'yahoo', '2007-01-01', end) 
sp = web.DataReader('^GSPC', 'yahoo', '2007-01-01', end) 

fig, ax1 = plt.subplots() 
df['Close'].plot(ax=ax1,color='g') 
sp['Close'].plot(secondary_y=True, ax=ax1,color='b') 

plt.show() 
+0

真棒,谢谢! – Brian

1

传递斧到次级plot功能,并设置secondary_yTrue

ax = df['Close'].plot(); sp['Close'].plot(ax=ax, secondary_y=True) 

enter image description here

相关问题