两个时间序列不会在同一x轴上绘制图形(日期格式问题)?

时间:2019-04-09 20:39:50

标签: python datetime matplotlib pandas-datareader

我正在尝试从iex和FRED导入数据。尽管两个时间序列都在同一时间段内,但是当我将它们一起绘制在一起时,数据无法正确显示在同一x轴上。我怀疑这是由于iex日期的格式和FRED日期的格式之间存在差异。

以下代码:

import matplotlib.pyplot as plt

import pandas as pd
from pandas_datareader.data import DataReader 

from datetime import date 

start = date(2016,1,1)
end = date(2016,12,31)

ticker = 'AAPL'

data_source = 'iex'

stock_prices = DataReader(ticker, data_source, start, end)

print(stock_prices.head())
stock_prices.info()

stock_prices['close'].plot(title=ticker)
plt.show()

series = 'DCOILWTICO'
start = date(2016,1,1)
end = date(2016,12,31)
oil = DataReader(series,'fred',start,end)
print(oil.head())
oil.info()

data = pd.concat([stock_prices[['close']],oil],axis=1)
print(data.head())

data.columns = ['AAPL','Oil Price']
data.plot()
plt.show()

1 个答案:

答案 0 :(得分:0)

使用连接而不是pd.concat会给您您想要的东西:

data = stock_prices[['close']].join(oil)

enter image description here

pd.concat的主要问题是数据的索引未对齐,因此奇怪的样式化了DataFrame。 pd.join将解决对齐问题