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
>Solution :
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]