#python #pandas #numpy #matplotlib #seaborn
#python #панды #numpy #matplotlib #seaborn
Вопрос:
Итак, у меня есть график распределения частот, который выглядит следующим образом:
мне нужно значение x, соответствующее пику значения y. Как я могу получить его для кода построения графика?
seaborn.distplot('TheSeries',bins = 30, ax=axes[0][1])
Может кто-нибудь объяснить, как я могу получить это соответствующее значение для этого и подобных случаев?
Ответ №1:
Вы можете извлечь координаты кривой kde из ax.lines[-1]
и использовать np.argmax()
для определения режима кривой.
Обратите внимание, что в последней версии seaborn distplot
устарело. Здесь histplot
с kde=True
будет его заменой.
from matplotlib import pyplot as plt
import numpy as np
import seaborn as sns
samples = np.random.randn(300) ** 2 * 50
ax = sns.histplot(samples, bins=30, kde=True, color='skyblue')
kdeline = ax.lines[0]
xs = kdeline.get_xdata()
ys = kdeline.get_ydata()
mode_idx = np.argmax(ys)
ax.vlines(xs[mode_idx], 0, ys[mode_idx], color='tomato', ls='--', lw=2)
plt.show()
Комментарии:
1. У меня есть. Еще раз спасибо. Также есть ли какой-либо способ получить пиковое значение для того же kde, но с удалением выбросов около 3 значений z?
2. Я думаю, если вы удалите выбросы, пик должен оставаться в том же положении. Может быть, вы хотите ограничить диапазон оси x, например
ax.set_xlim(-1, 300)
?3. Отчасти да. Я пытаюсь найти значение x, соответствующее пиковому значению (с точки зрения частоты или повторяемости) непрерывного распределения. Данные умеренно сильно искажены, и у меня есть несколько таких распределений (их диапазоны сильно различаются, их общий размер выборки также отличается). Итак, пытаюсь смоделировать диапазон доверительных интервалов 95% для пикового значения.
4. Выбросы достаточно сильно изменяют стандартное отклонение. Кстати, будут ли выбросы сильно влиять на производительность kde?
5. Пиковое
x
значение вообще не должно меняться,y
оно будет немного выше (интеграл от суммы kde равен 1, поэтому меньшее количество значений придает немного больший вес каждому из оставшихся значений). Среднее и медианное значения будут немного меняться в зависимости от того, насколько далеко находятся выбросы и сколько их. Для вычисления доверительного интервала вам, вероятно, не следует удалять выбросы (за исключением, например, случаев, когда вы убеждены, что они связаны с ошибками измерения).