两个时间序列不会在同一个 x 轴上绘制图表(日期格式问题)?
Two time series won't graph on same x axis (date format issue)?
我正在尝试从 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()
使用 join 而不是 pd.concat
会给你想要的东西:
data = stock_prices[['close']].join(oil)
pd.concat
的主要问题是您的数据索引未对齐,因此出现奇怪的 stiched DataFrame。 pd.join
将处理错位
我正在尝试从 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()
使用 join 而不是 pd.concat
会给你想要的东西:
data = stock_prices[['close']].join(oil)
pd.concat
的主要问题是您的数据索引未对齐,因此出现奇怪的 stiched DataFrame。 pd.join
将处理错位