python - 在 iPython/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
hold(False)
adj_close.resample('M', how='min').plot()
adj_close.resample('M', how='max').plot()

事实上,我得到了三个数字:第一个是空白的,然后是两个各有一行的数字。

blank plot first plot second plot

知道我做错了什么或者我系统上的哪些设置可能配置错误吗?

最佳答案

您可以使用 matplotlibs pyplot 包预先创建一个轴对象,然后将绘图附加到该轴对象:

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)

Plot example

或者,您可以将这两个系列连接成一个 m x 2 DataFrame 并绘制数据框:

s1 = adj_close.resample('M', how='min')
s2 = adj_close.resample('M', how='max')
df = pd.concat([s1, s2], axis=1)
df.plot()

关于python - 在 iPython/pandas 中绘制多条线会产生多个图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28203643/

相关文章:

Python filter() 带有变量的对象列表

python - 在 matplotlib 中制作高度为 0 的透明色条

pandas - 在 Pandas 数据框中查找具有相同值的不同 ID

python - 使用 BeautifulSoup 提取标签中的内容

python - 使用 pandas 中的迭代名称按索引重命名多个列

python - 在 matplotlib 中绘制一组给定点以形成闭合曲线

python - 如何使用 Axes3D 显示我的曲面图?

python - Pandas 数据帧 : How to extract the last two string type numbers from a column which doesn't always end with the two numbers

python - Pandas 读取(Excel)文本列,并返回相似度

python - 将文件从一个 s3 存储桶复制到另一个存储桶的最简单的 lambda 函数