Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/285.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在iPython/pandas中绘制多条线会生成多个打印_Python_Matplotlib_Pandas - Fatal编程技术网

在iPython/pandas中绘制多条线会生成多个打印

在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

我试图了解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
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对象显式化。