![](/img/trans.png)
[英]How can I plot residuals in seasonal_decompose(df['Employees'], model='add') as a line chart, not a scatterplot?
[英]How to plot multiple seasonal_decompose plots in one figure?
sm.tsa.seasonal_decompose
返回DecomposeResult
。 這具有observed
屬性, trend
, seasonal
和resid
,它們是熊貓系列。 您可以使用pandas plot功能繪制每個圖。 例如
res = sm.tsa.seasonal_decompose(someseries)
res.trend.plot()
這與res.plot()
函數對四個系列中的每一個都基本相同,因此您可以編寫自己的函數,將DecomposeResult
和四個matplotlib軸的列表作為輸入,並將四個屬性繪制為四個軸。
import matplotlib.pyplot as plt
import statsmodels.api as sm
dta = sm.datasets.co2.load_pandas().data
dta.co2.interpolate(inplace=True)
res = sm.tsa.seasonal_decompose(dta.co2)
def plotseasonal(res, axes ):
res.observed.plot(ax=axes[0], legend=False)
axes[0].set_ylabel('Observed')
res.trend.plot(ax=axes[1], legend=False)
axes[1].set_ylabel('Trend')
res.seasonal.plot(ax=axes[2], legend=False)
axes[2].set_ylabel('Seasonal')
res.resid.plot(ax=axes[3], legend=False)
axes[3].set_ylabel('Residual')
dta = sm.datasets.co2.load_pandas().data
dta.co2.interpolate(inplace=True)
res = sm.tsa.seasonal_decompose(dta.co2)
fig, axes = plt.subplots(ncols=3, nrows=4, sharex=True, figsize=(12,5))
plotseasonal(res, axes[:,0])
plotseasonal(res, axes[:,1])
plotseasonal(res, axes[:,2])
plt.tight_layout()
plt.show()
import matplotlib.pyplot as plt
x = [1, 2, 3, 4, 5]
y = [1, 4, 9, 16, 25]
fig = plt.figure()
ax1 = fig.add_subplot(2,3,1)
ax1.scatter(x, y)
ax2 = fig.add_subplot(2,3,2)
ax2.scatter(x, y)
ax3 = fig.add_subplot(2,3,3)
ax3.scatter(x, y)
ax4 = fig.add_subplot(2,3,4)
ax4.scatter(x, y)
ax5 = fig.add_subplot(2,3,5)
ax5.scatter(x, y)
ax6 = fig.add_subplot(2,3,6)
ax6.scatter(x, y)
plt.show()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.