Python 有没有一种方法可以在不使用distplot的情况下以plotly(缩放到y轴而不进行规格化)绘制高斯曲线?
我一直在尝试绘制一个符合高斯分布的直方图,即平均值和1西格玛标准偏差误差。使用ff.create_distplot不允许我们选择所需的y轴范围,它会自动将其规格化。我曾尝试使用matplotlib版本的东西,并尝试使其在plotly上工作,但没有任何效果。 我的代码如下。 任何帮助都将不胜感激。多谢各位 从图像中,您可以看到高斯分布已归一化。如何将其缩放到y轴?Python 有没有一种方法可以在不使用distplot的情况下以plotly(缩放到y轴而不进行规格化)绘制高斯曲线?,python,plotly,plotly-python,Python,Plotly,Plotly Python,我一直在尝试绘制一个符合高斯分布的直方图,即平均值和1西格玛标准偏差误差。使用ff.create_distplot不允许我们选择所需的y轴范围,它会自动将其规格化。我曾尝试使用matplotlib版本的东西,并尝试使其在plotly上工作,但没有任何效果。 我的代码如下。 任何帮助都将不胜感激。多谢各位 从图像中,您可以看到高斯分布已归一化。如何将其缩放到y轴? GX= pd.read_csv(r'X.....X. csv') df = pd.DataFrame(GX, columns =
GX= pd.read_csv(r'X.....X.
csv')
df = pd.DataFrame(GX, 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
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 = go.Figure()
fig.add_trace(
go.Histogram(
x = PM1
)
)
mean = np.mean(PM1)
variance = np.var(PM1)
sigma = np.sqrt(PM1)
fig.add_trace(
go.Scatter(
name = 'Gaussian',
mode = 'lines',
x = PM1,
y = mlab.normpdf(PM1, mean, sigma)
)
)
#Line Plot for mean
mean = np.mean(PM1)
stdev_pluss = mean + np.std(PM1)
stdev_minus = mean - np.std(PM1)
median = np.median(PM1)
fig.add_trace(
go.Scatter(
name = 'Mean',
x=[2.769491040712437]*1000,
y = np.linspace(0,105,num = 1000),
mode="lines",
marker=dict(
size=2,
line=dict(
color = 'rgb(128,177,211)',
width=1
)
)
)
)
#Line Plot for Median
fig.add_trace(
go.Scatter(
name = 'Median',
x=[2.800431666]*1000,
y = np.linspace(0,105,num = 1000),
mode="lines",
marker=dict(
size=2,
line=dict(
color = 'rgb(128,177,211)',
width=1
)
)
)
)
#Plotting Standard Deviation Lines
fig.add_trace(
go.Scatter(
name = 'Stdev-',
x=[(stdev_minus)]*1000,
y = np.linspace(0,105,num = 1000),
mode="lines",
marker=dict(
size=2,
line=dict(
color = 'rgb(128,177,211)',
width=1
)
)
)
)
fig.add_trace(
go.Scatter(
name = 'Stdev+',
x=[(stdev_pluss)]*1000,
y = np.linspace(0,105,num = 1000),
mode="lines",
marker=dict(
size=2,
line=dict(
color = 'rgb(128,177,211)',
width=1
)
)
)
)
fig.update_layout(
title = 'Proper Motion Histogram + Gaussian distribution ',
xaxis = dict(
title='Proper Motion'
),
yaxis = dict(
title='Count'
),
template = 'plotly_dark',
showlegend = True
)
fig.show()
print('Mean :{}\nMedian: {}\nStandard Deviation: {}'.format(mean,median,stdev))
GX=pd.read\u csv(r'X…..X。
csv')
df=pd.DataFrame(GX,列=['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
对于范围内的i(len(PM)):
if(PM[i]-4.5和pmra[i]1和pmdec[i]那么,你想在y轴上显示什么?带有高斯分布的直方图,以及标准偏差和平均值。是的,我理解。但是你想在y轴上显示什么?我的数据计数。这里,我试图显示给定的固有运动值范围内的恒星数。我想这就是你要问的。Otherwise,我不明白这个问题。是的,这就是我要问的。那么,你想在y轴上显示什么?带有高斯分布的直方图以及标准偏差和平均值。是的,我明白。但是你想在y轴上显示什么?我的数据计数。在这里,我试图显示giv中的恒星数量我想这就是你要问的。否则,我不理解这个问题。是的,这就是我要问的。