How to extract xvalues and yvalues from a kdeplot

91 views Asked by At

Given that I have a seaborn.kdeplot I want to extract the x and y points. Based on similar questions I have tried the following:

points = sns.kdeplot(targets, shade=True, label='train').get_lines()[0].get_data()
x      = points[0]
y      = points[1]

But I'm getting the error

Traceback (most recent call last):
  File "<string>", line 10, in <module>
IndexError: list index out of range

I'm using seaborn==0.12.2 and matplotlib==3.7.1

1

There are 1 answers

0
Matt Pitkin On BEST ANSWER

Because you request shade=True (use fill=True in the latest seaborn versions), the output axes object does not contain a Line2D object (it instead contains a PolyCollection). If you remove the shade=True, you be able to extract the data in the way that you give:

ax = sns.kdeplot(targets, label='train')
points = ax.get_lines()[0].get_data()
x = points[0]
y = points[1]