python - Plotly:如何为 create_displot 图添加均值和标准差?

标签 python statistics plotly

我正在尝试更改此处使用 create_distplot 函数绘制的直方图和正态分布曲线。我找不到任何可以让我向该图添加更多痕迹的东西。有没有其他方法可以使用任何其他 plotly 函数实现相同的结果?

GAIA = pd.read_csv(r'C:\Users\Admin\Desktop\New folder\6 SEM Python\WORK\Astrometry\DistancePM.csv')
    df = pd.DataFrame(GAIA, columns = ['ra','dec','rest','b_rest','B_rest','pmra','pmra_error','pmdec','pmdec_error','PM'])
    ra = df['ra'].tolist()
    dec = df['dec'].tolist()
    rest = df['rest'].tolist()
    b_rest = df['b_rest'].tolist()
    B_rest = df['B_rest'].tolist()
    pmra = df['pmra'].tolist()
    pmra_E = df['pmra_error'].tolist()
    pmdec = df['pmdec'].tolist()
    pmdec_E = df['pmdec_error'].tolist()
    PM = df['PM'].tolist() 
    PM1 = []
    c = 0
    #Here we are onlly taking the range from tehabove contour plot where there is a 
    #clustering of data points x = [-4.5, 1.5] and y = [3, 1]
    for i in range(len(PM)):
        if (PM[i]<100 and pmra[i]>-4.5 and pmra[i]<1.5 and pmdec[i]>1 and pmdec[i]<3):
            PM1.append(PM[i])
            c+=1
    group_labels = ['Proper Motion']
    color = ['#636EFA', '#EF553B', '#00CC96', '#AB63FA', '#FFA15A', '#19D3F3', '#FF6692', '#B6E880', '#FF97FF', '#FECB52']    
    fig = ff.create_distplot(
        [PM1], 
        group_labels,
        bin_size = 0.05,
        curve_type='normal',
        colors = color
    )
    fig.update_layout(
        title = 'Proper Motion Histogram + Gaussian distribution ',
        xaxis = dict(
            title='Proper Motion'
        ),
        yaxis = dict(
            title='Density'
        ),
        template = 'plotly_dark',
        showlegend = True
    )
    fig.show()
    print(c)[![enter image description here][1]][1]
    
    
      [1]: /image/lOBvY.png

This is how the figure looks like

最佳答案

您尚未指定如何显示您添加的数据,因此我只能假设这就是您要查找的内容:

enter image description here

如果是这种情况,您可以使用 np.mean() 计算您的度量,并使用以下方法将其添加到图中:

fig.add_shape(type="line",x0=mean, x1=mean, y0 =0, y1=0.4 , xref='x', yref='y',
               line = dict(color = 'blue', dash = 'dash'))

这是一个完整的代码片段,也有 +/- 一个标准差:

import plotly.figure_factory as ff
import numpy as np
np.random.seed(1)

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)
fig.add_shape(type="line",x0=mean, x1=mean, y0 =0, y1=0.4 , xref='x', yref='y',
               line = dict(color = 'blue', dash = 'dash'))
fig.add_shape(type="line",x0=stdev_pluss, x1=stdev_pluss, y0 =0, y1=0.4 , xref='x', yref='y',
               line = dict(color = 'red', dash = 'dash'))
fig.add_shape(type="line",x0=stdev_minus, x1=stdev_minus, y0 =0, y1=0.4 , xref='x', yref='y',
               line = dict(color = 'red', dash = 'dash'))
fig.show()

关于python - Plotly:如何为 create_displot 图添加均值和标准差?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63847534/

相关文章:

Python pandas 设置WithCopyWarning

python - 抑制 Pandas 的科学记数法?

python - 使用 SciPy 的分位数-分位数图

python - 差分隐私的实现技术

python - 在条形图上的 Plotly Express 中更改轴/图例名称

python - 错误 : a bytes-like object is required, 不是 'str'

python - numpy 查找矩阵行中所有数字对组合的乘积

r - 计算大 df2 的 F 值

python - Interactive Plot - 改变色调的交互式选项

python - plotly 指标数字舍入