Нарисуйте точку на среднем пике дистоплота или кделплота в Сиборне - PullRequest
0 голосов
/ 08 января 2019

Меня интересует автоматическое построение точки чуть выше среднего пика распределения, представленного kdeplot или distplot с помощью kde. Построение точек и линий вручную очень просто, но мне трудно получить эту максимальную координатную точку.

Например, сгенерированный ниже kdeplot должен иметь точку, нарисованную примерно в (3.5, 1.0):

iris = sns.load_dataset("iris")
setosa = iris.loc[iris.species == "setosa"]
sns.kdeplot(setosa.sepal_width)

enter image description here

Этот вопрос служит конечной цели - провести линию к следующему пику (два распределения на одном графике) с напечатанной над ним t-статистикой.

1 Ответ

0 голосов
/ 09 января 2019

Вот один из способов сделать это. Идея здесь состоит в том, чтобы сначала извлечь данные x и y линейного объекта на графике. Затем получите идентификатор пика и, наконец, построите одну (x, y) точку, соответствующую пику распределения.

import numpy as np
import seaborn as sns
iris = sns.load_dataset("iris")
setosa = iris.loc[iris.species == "setosa"]
ax = sns.kdeplot(setosa.sepal_width)

x = ax.lines[0].get_xdata() # Get the x data of the distribution
y = ax.lines[0].get_ydata() # Get the y data of the distribution
maxid = np.argmax(y) # The id of the peak (maximum of y data)
plt.plot(x[maxid],y[maxid], 'bo', ms=10)

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...