python - 相当于 sns.distplot(data, fit=scipy.stats.norm) 与 plotly
问题描述
一段时间以来,我一直在使用seaborn
和plotly
进行可视化,这取决于我目前的需要。最近,我一直在尝试完全迁移到plotly
,但有些事情我仍然不知道如何使它工作。
例如,我曾经使用 seaborn 来检查一些数据的分布,看看它与高斯分布的拟合程度。这可以通过以下代码段轻松完成:
import seaborn as sns
from scipy.stats import norm
sns.distplot(data, fit=norm)
我一直在尝试用plotly express
(px.histogram
更具体地说)实现一些类似的快速高斯检查,但我无法完成。你能帮我解决这个问题吗?
编辑
“数据”的一个例子是:
import numpy as np
np.random.seed(123)
data = np.random.noncentral_chisquare(3, 20, 1000)
输出应显示带有 KDE 的数据直方图,以及高斯等效 KDE。这在测试转换结果(log、box-cox...)时很有帮助
解决方案
我想你可能有兴趣阅读这篇文章。显然,目前它使用的是最简单的方法,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()
如果不是fig.data = ...
你使用
lst = list(fig.data)
lst.pop(1)
fig.data = tuple(lst)
推荐阅读
- angular - CdkDrag 移动得太快了
- python - python tkinter: Progressbar indeterminate: mac os: 如何增加移动的明亮区域的大小
- ctags - “ctags:未知选项:--输出格式”错误
- c - 线程池问题
- python - 我正在尝试在 Socket (Python) 上使用 IPv6 地址
- python - 在while循环中使用xlsxwriter编写多个公式到excel表
- django - ImportError:在 CMD 中运行“heroku python manage.py migrate”后无法导入 Django
- python - 是否有一种有效的方法可以在 Google Drive API 中查询所有用户的所有文件?
- vaadin - 如何使 vaadin-split-layout 的内容独立滚动?
- javascript - 如何使用 if/else 语句显示/隐藏多个 div?