我正在尝试使用 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/