为啥要绘制一个似乎不正确的直方图?

Posted

技术标签:

【中文标题】为啥要绘制一个似乎不正确的直方图?【英文标题】:Why is plotly producing a histogram that seems to be incorrect?为什么要绘制一个似乎不正确的直方图? 【发布时间】:2021-12-23 23:26:47 【问题描述】:
import plotly.express as px

px.histogram(purchase_data,x='Log_Final Price',color='Sale')

用 plotly express 绘图

与 Seaborn 相同的情节

sns.histplot(purchase_data,x='Log_Final Price',hue='Sale')

您可以清楚地看到,对于 Sale='Yes' 和 Sale='Np',plotly 给出了完全相反的情节。

【问题讨论】:

第一个图显示 stacked 条形图(barmode='relative' 是默认的 px,或 barmode='stack' 是 go),第二个图显示 overlaid i> 酒吧 (barmode='overlay')。 【参考方案1】:

情节直方图不正确,它只是堆叠。如果您包括以下内容,它将更类似于您的 seaborn 直方图:

fig.update_layout(barmode = 'overlay')
fig.update_traces(opacity=0.50)

情节

代码

import plotly.express as px
df = px.data.tips()
fig = px.histogram(df, x='total_bill', color = 'sex')
fig.update_layout(barmode = 'overlay')
fig.update_traces(opacity=0.50)
fig.show()

【讨论】:

如果我没记错的话,plotly 的 barmode 属性对应于 seaborn 中的 multiplemultiple='layer' 似乎是 seaborn 中的默认值,并且对应于 plotly 中的barmode='overlay',因此您可以将barmode='overlay' 设置为第一个,或者将multiple='stack' 设置为第二个。但这只是一个假设。

以上是关于为啥要绘制一个似乎不正确的直方图?的主要内容,如果未能解决你的问题,请参考以下文章

在 python 中绘制配置文件直方图

Matplotlib:绘制具有非透明边缘的透明直方图

python 直方图的绘制方法全解

R绘制边缘直方图箱图(Marginal Histogram / Boxplot)

如何在Julia中绘制热图

MATLAB-真彩色图像RGB直方图绘制