Эквивалент sns.distplot (data, fit = scipy.stats.norm) с плотно - PullRequest
0 голосов
/ 06 февраля 2020

Некоторое время я использовал и seaborn, и plotly для визуализации, в зависимости от моих потребностей на данный момент. В последнее время я пытался полностью перейти на plotly, но есть вещи, которые я до сих пор не могу понять, как заставить его работать.

Например, я использовал seaborn для проверки Распределение некоторых данных, чтобы увидеть, насколько хорошо это соответствует гауссовскому распределению. Это можно легко сделать с помощью следующего фрагмента:

import seaborn as sns
from scipy.stats import norm

sns.distplot(data, fit=norm)

Я пытался добиться некоторой аналогичной быстрой проверки по Гауссу с помощью plotly express (px.histogram, чтобы быть более точным c), но я не могу сделать это. Не могли бы вы помочь мне с этим вопросом?

РЕДАКТИРОВАТЬ

Примером для «данных» будет:

import numpy as np
np.random.seed(123)

data = np.random.noncentral_chisquare(3, 20, 1000)

В выходных данных должна отображаться гистограмма данных с KDE, плюс гауссовский эквивалент KDE. Это полезно при тестировании результатов преобразований (log, box-cox ...)

1 Ответ

1 голос
/ 21 апреля 2020

Я думаю, что вы можете быть заинтересованы в чтении это . По-видимому, на данный момент самый простой способ - использовать plotly.figure_factory.create_dist_plot, но по приведенной выше ссылке похоже, что он будет прекращен.

import numpy as np
import plotly.figure_factory as ff

np.random.seed(123)
data = np.random.noncentral_chisquare(3, 20, 1000)

m = data.mean()
s = data.std()
gaussian_data = np.random.normal(m, s, 10000)

fig = ff.create_distplot(
    [data, gaussian_data],
    group_labels=["plot", "gaussian"],
    curve_type="kde")

fig.data = [fig.data[0], fig.data[2], fig.data[3]]

fig.update_layout(showlegend=False)
fig.show()

enter image description here

И если вместо fig.data = ... вы используете

lst = list(fig.data)
lst.pop(1)
fig.data = tuple(lst)

, вы получите enter image description here

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