Python Plotly 重叠概率直方图

问题描述 投票:0回答:1

我创建了 3 个频率直方图,重叠为一个:

df['DataA'] = .... 
df['DataB'] = .... 
df['DataC'] = .... 

barmode = 'relative'
histnorm = 'probability'

fig = px.histogram(df, x='DataA', nbins=1000, title='My Chart', barmode=barmode,histnorm=histnorm)
fig.update_xaxes(title='', showline=True, showgrid=False)
fig.update_yaxes(title='', showline=True, showgrid=False, tickformat=',.0%')

fig.add_histogram(x=df['DataB'], nbinsx=1000, histnorm=histnorm, opacity=0.7, name='Data B')
fig.add_histogram(x=df['DataC'], nbinsx=1000, histnorm=histnorm, opacity=0.7, name='Data C')

# Update layout to hide axis names
fig.update_layout(xaxis_title='', yaxis_title='')

fig.show()

这是结果:

但是概率不正确,实际上,如果我单独绘制每个直方图,我会得到以下结果: 正如您所看到的,数据系列达到的最大概率约为 6%,而主图表达到 ~20%。

有人知道如何解决这个问题吗?谢谢。

python python-3.x pandas plotly
1个回答
0
投票

发生这种情况是因为您设置了

barmode = 'relative'
,因此条形图堆叠。 您可以通过将栏模式设置为
'overlay'
'group'
来解决此问题:

barmode
(str(默认
'relative'
)) –
'group'
'overlay'
或之一
'relative'

'relative'
模式下,条形堆叠在零以上 正值,负值低于零。在
'overlay'
模式下, 条形图是一个一个地绘制的。在
'group'
模式下,放置条 彼此并肩。

© www.soinside.com 2019 - 2024. All rights reserved.