我创建了 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%。
有人知道如何解决这个问题吗?谢谢。
发生这种情况是因为您设置了
barmode = 'relative'
,因此条形图堆叠。
您可以通过将栏模式设置为 'overlay'
或 'group'
来解决此问题:
(str(默认barmode
)) –'relative'
、'group'
或之一'overlay'
。'relative'
在
模式下,条形堆叠在零以上 正值,负值低于零。在'relative'
模式下, 条形图是一个一个地绘制的。在'overlay'
模式下,放置条 彼此并肩。'group'