在iPython/pandas中绘制多条线会生成多个打印
我试图了解matplotlib的状态机模型,但在一个绘图上绘制多条线时遇到了错误。据我所知,以下代码应生成具有两行的单个绘图:在iPython/pandas中绘制多条线会生成多个打印,python,matplotlib,pandas,Python,Matplotlib,Pandas,我试图了解matplotlib的状态机模型,但在一个绘图上绘制多条线时遇到了错误。据我所知,以下代码应生成具有两行的单个绘图: import pandas as pd import pandas.io.data as web aapl = web.get_data_yahoo('AAPL', '1/1/2005') # extract adjusted close adj_close = aapl.loc[:, ['Adj Close']] # 2 lines on one plot hol
import pandas as pd
import pandas.io.data as web
aapl = web.get_data_yahoo('AAPL', '1/1/2005')
# extract adjusted close
adj_close = aapl.loc[:, ['Adj Close']]
# 2 lines on one plot
hold(False)
adj_close.resample('M', how='min').plot()
adj_close.resample('M', how='max').plot()
事实上,我得到了三个数字:首先是一个空白数字,然后是两个各有一行的数字
知道我做错了什么,或者我的系统上的什么设置可能配置错误了吗?您可以使用matplotlibs
pyplot
软件包预先创建一个axis对象,然后将绘图附加到此axis对象:
import pandas as pd
import pandas.io.data as web
import matplotlib.pyplot as plt
aapl = web.get_data_yahoo('AAPL', '1/1/2005')
# extract adjusted close
adj_close = aapl.loc[:, ['Adj Close']]
# 2 lines on one plot
#hold(False)
fig, ax = plt.subplots(1, 1)
adj_close.resample('M', how='min').plot(ax=ax)
adj_close.resample('M', how='max').plot(ax=ax)
或者,您可以将两个系列合并为一个m x 2数据帧,并绘制数据帧:
s1 = adj_close.resample('M', how='min')
s2 = adj_close.resample('M', how='max')
df = pd.concat([s1, s2], axis=1)
df.plot()
太好了!它得到了我想要的行为,我特别喜欢它使figure和axis对象显式化。