2

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

Community
  • 1
  • 1
Philip O'Brien
  • 4,146
  • 10
  • 46
  • 96

3 Answers3

9

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.

TomAugspurger
  • 28,234
  • 8
  • 86
  • 69
5

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

Sergey Kuper
  • 85
  • 1
  • 6
0

You can use ";" end of plotting code. res.plot();