如何解决情节:如何将均值和标准差添加到create_displot图上?
我试图在此处更改直方图和正态分布曲线,该曲线是通过使用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]: https://i.stack.imgur.com/lOBvY.png
解决方法
您尚未指定要显示添加的数据的方式,因此我只能假设这是您要查找的内容:
在这种情况下,您可以使用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",dash = 'dash'))
fig.add_shape(type="line",x0=stdev_pluss,x1=stdev_pluss,line = dict(color = 'red',x0=stdev_minus,x1=stdev_minus,dash = 'dash'))
fig.show()
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。