Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Python StatsModels Time Series Decomposition Duplicate Plot

I am using a mixture of Pandas and StatsModels to plot a time series decomposition. I followed this answer but when I call plot() it seems to be plotting a duplicate.

My DataFrame looks like

enter image description here

My index looks like

enter image description here

but when I plot the decomposition I get this

enter image description here

Strangely, if I plot only an element of the decomposition, the duplication does not occur

enter image description here

like image 262
Philip O'Brien Avatar asked Aug 13 '26 12:08

Philip O'Brien


2 Answers

Assign the result of res.plot() to something, e.g. fig = res.plot(). The result of that method is a matplotlib.figure. The duplicate is from it's _repr_html_, which the notebook renders since it's the last item in the cell. You can try it yourself with

fig, ax = plt.subplots()
ax.plot([1, 2], [1, 2])
fig

The second method returns a matplotlib axes, which doesn't have a _repr_html so you just see that text above the figure.

like image 178
TomAugspurger Avatar answered Aug 16 '26 03:08

TomAugspurger


Adding plt.show() line after Solved the issue for me.

like image 35
Sergey Kuper Avatar answered Aug 16 '26 01:08

Sergey Kuper