python - 使用 pandas 问题在 matplotlib 中绘制子图

标签 python matplotlib pandas

我正在尝试使用 pandas 在 matplotlib 中绘制子图,但我遇到了问题。当我绘制子图时不显示库存日期...这是我的程序

import pandas as pd
import datetime
import matplotlib.pyplot as plt 
import pandas.io.data

df = pd.io.data.get_data_yahoo('goog', start=datetime.datetime(2008,1,1),end=datetime.datetime(2014,10,23))
fig = plt.figure()
r = fig.patch
r.set_facecolor('#0070BB')
ax1 = fig.add_subplot(2,1,1, axisbg='#0070BB')
ax1.grid(True)
ax1.plot(df['Close'])

ax2 = fig.add_subplot(2,1,2, axisbg='#0070BB')
ax2.plot(df['Volume'])
plt.show()

自行运行此程序并解决日期问题.....

最佳答案

当您调用 matplotlib's plot() 时,你只给它一个数组(例如第一种情况下的 df['Close'] )。当只有一个数组时,matplotlib 不知道 x 轴数据使用什么,所以它只使用数组的索引。这就是为什么你的 x 轴显示数字 0 到 160:你的数组中大概有 160 个项目。

改用 ax1.plot(df.index, df['Close']),因为 df.index 应该在您的 pandas 数据框中保存日期值。

import pandas as pd
import datetime
import matplotlib.pyplot as plt
import pandas.io.data

df = pd.io.data.get_data_yahoo('goog', start=datetime.datetime(2008,1,1),end=datetime.datetime(2014,10,23))
fig = plt.figure()
r = fig.patch
r.set_facecolor('#0070BB')
ax1 = fig.add_subplot(2,1,1, axisbg='#0070BB')
ax1.grid(True)
ax1.plot(df.index, df['Close'])

ax2 = fig.add_subplot(2,1,2, axisbg='#0070BB')
ax2.plot(df.index, df['Volume'])
plt.show()

关于python - 使用 pandas 问题在 matplotlib 中绘制子图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26571085/

相关文章:

python - 交换 Python scipy 树状图/链接的叶子

python - Pandas 数据框绘图

python - 查找数据框中每组另一个常见单元格中最常见的单元格

python - pandas groupby 计数共存

python - 从长度为 1 的元组中解压返回值

python - Heroku 应用程序成功部署,但在加载站点时收到应用程序错误

python - 在python中解析sql查询

python - 将元组扩展为参数

python - 将条形图中的 xticklabels 与 matplotlib 对齐

python - 从 pandas 中的多索引日期获取频率表