When I plot density distribution of my pandas Series I use
.plot(kind='kde')
Is it possible to get output values of this plot? If yes how to do this? I need the plotted values.
Advertisement
Answer
There are no output value from .plot(kind='kde')
, it returns a axes
object.
The raw values can be accessed by _x
and _y
method of the matplotlib.lines.Line2D
object in the plot
In [266]: ser = pd.Series(np.random.randn(1000)) ax=ser.plot(kind='kde') In [265]: ax.get_children() #it is the 3nd object Out[265]: [<matplotlib.axis.XAxis at 0x85ea370>, <matplotlib.axis.YAxis at 0x8255750>, <matplotlib.lines.Line2D at 0x87a5a10>, <matplotlib.text.Text at 0x8796f30>, <matplotlib.text.Text at 0x87a5850>, <matplotlib.text.Text at 0x87a56d0>, <matplotlib.patches.Rectangle at 0x87a56f0>, <matplotlib.spines.Spine at 0x85ea5d0>, <matplotlib.spines.Spine at 0x85eaed0>, <matplotlib.spines.Spine at 0x85eab50>, <matplotlib.spines.Spine at 0x85ea3b0>] In [264]: #get the values ax.get_children()[2]._x ax.get_children()[2]._y