首页  >  文章  >  后端开发  >  为什么 Seaborn.displot() 不会创建并排直方图?

为什么 Seaborn.displot() 不会创建并排直方图?

Barbara Streisand
Barbara Streisand原创
2024-10-31 03:29:30750浏览

Why Won't Seaborn.displot() Create Side-by-Side Histograms?

seaborn.displot 未在定义的子图中绘制

使用 seaborn.displot() 创建两个并排直方图时,您可能会遇到意想不到的结果其中图分别呈现在不同的线上。此行为不同于其他 seaborn 函数,如 violinplot() ,后者会生成预期的并排图。

弃用seaborn.distplot()

造成这种差异的原因在于版本 0.11 中弃用了seaborn.distplot。它已被替换为:

  • displot():图形级函数,提供绘图类型的灵活性,但缺少 ax 参数,使其与 matplotlib.pyplot.subplots 不兼容。
  • histplot():专门为直方图设计的轴级函数,包括核密度平滑,它有 ax 参数,可以与 matplotlib.pyplot.subplots 一起使用。

解决方案:使用seaborn .histplot()

要解决该问题并获得所需的并排直方图,请将 displot() 替换为 histplot()。此函数支持 ax 参数,允许您指定要渲染绘图的轴。

<code class="python">import seaborn as sns
import matplotlib.pyplot as plt

fig, (ax1, ax2) = plt.subplots(1, 2)

sns.histplot(x=X_train['Age'], hue=y_train, ax=ax1)
sns.histplot(x=X_train['Fare'], hue=y_train, ax=ax2)</code>

处理多个数据帧

使用多个数据帧时,您可以使用组合它们pd.concat 并添加一个新的“源”列来标识数据源。然后,该列可用于 row=、col= 或 Hue= 参数。

以上是为什么 Seaborn.displot() 不会创建并排直方图?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn