python - Plotly:如何在直方图中同时显示正态分布和核密度估计?
问题描述
对于绘图工厂分布图,默认分布是kde
(核密度估计):
您可以通过设置来覆盖默认值curve = 'normal'
:
但是如何在同一个图中同时显示 kde 和正态曲线?分配一个类似的列表是curve_type = ['kde', 'normal']
行不通的。
完整代码:
import plotly.figure_factory as ff
import plotly.graph_objects as go
import plotly.express as px
import numpy as np
np.random.seed(2)
x = np.random.randn(1000)
hist_data = [x]
group_labels = ['distplot'] # name of the dataset
mean = np.mean(x)
stdev_pluss = np.std(x)
stdev_minus = np.std(x)*-1
fig = ff.create_distplot(hist_data, group_labels, curve_type='kde')
fig.update_layout(template = 'plotly_dark')
fig.show()
解决方案
最简单的方法是使用以下方法构建另一个图形fig2
并curve_type = 'normal'
从那里获取值:
fig2 = ff.create_distplot(hist_data, group_labels, curve_type = 'normal')
normal_x = fig2.data[1]['x']
normal_y = fig2.data[1]['y']
然后将这些值包含在第一个fig
使用中,fid.add_trace(go.Scatter())
如下所示:
fig2 = ff.create_distplot(hist_data, group_labels, curve_type = 'normal')
normal_x = fig2.data[1]['x']
normal_y = fig2.data[1]['y']
fig.add_traces(go.Scatter(x=normal_x, y=normal_y, mode = 'lines',
line = dict(color='rgba(0,255,0, 0.6)',
#dash = 'dash'
width = 1),
name = 'normal'
))
fig.show()
绘制两条密度曲线:
推荐阅读
- python - 为什么你不必在 Python 中返回对象?
- node.js - 在中间件 api 中结合 GET 和 POST 方法的最佳方法是什么?
- python - 制作一个条形图来表示 Pandas 系列中的出现次数
- javascript - 使用 javascript 动态更新 web 表
- mysql - 错误 exec.DDLTask:java.lang.NoSuchMethod 错误:
- python - 在python中扩展没有空格的列表
- android - 我不能参加其他活动,从 createfood 到 displayfood
- javascript - 如何将 Express.js 中的图像提供给 React
- xcode - @IBInspectable 属性未显示在 Interface Builder 中
- python - 这个数组声明在 Python 中意味着什么?