How to get the output of pandas.plot (kind = 'kde')?

When I draw the density distribution of my pandas series, I use

.plot(kind='kde') 

Is it possible to get the output values ​​of this graph? If so, how to do it? I need the constructed values.

+6
source share
2 answers

There is no output value from .plot(kind='kde') , it returns an axes object.

The initial values ​​can be accessed using the _x and _y methods of the matplotlib.lines.Line2D object in the chart.

 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 
+8
source

You can also directly call the scipy.stats.gaussian_kde() function, which happens in the pandas source code:

https://github.com/pydata/pandas/blob/master/pandas/tools/plotting.py#L284

The doc for the function is:

http://docs.scipy.org/doc/scipy/reference/generated/scipy.stats.gaussian_kde.html

+5
source

Source: https://habr.com/ru/post/970664/


All Articles