首页  >  文章  >  后端开发  >  为什么我的 Seaborn'displot”子图是空的?

为什么我的 Seaborn'displot”子图是空的?

DDD
DDD原创
2024-10-29 22:26:02974浏览

Why Are My Seaborn `displot` Subplots Empty?

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

尝试使用 sns.displot 并排绘制两个分布时,用户可能会遇到空子图,后跟后续行的预期显示。此行为是由于 sns.distplot 被弃用,转而使用更灵活的 displot 和 histplot 函数。

图级图与轴级图

seaborn.displot 是一个图 - level 函数缺少 ax 参数,而 sns.histplot 是具有 ax 参数的轴级函数。这意味着 displot 不能与 matplotlib.pyplot.subplots 一起使用,而 histplot 可用于可视化同一行上的两个图。

要解决此问题,您应该使用 sns.histplot 来实现您想要的目的。这是一个示例:

<code class="python">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>

重要注意事项

  • 如果您有一个宽格式的 DataFrame 并希望绘制多列的直方图,建议使用 axis-level sns.histplot 函数。
  • 要展平轴数组,可以使用 ravel 方法。
  • 在长格式 DataFrame 中使用 displot 时,common_bins 和 common_norm 参数应设置为 False以避免常见的数据分箱和标准化。

多个数据帧

如果要绘制多个数据帧的分布,您可以:

  • 连接它们使用 pd.concat。
  • 使用 allocate 添加新列以唯一标识每个数据帧的源。
  • 使用行、列或色调参数来区分图。

以上是为什么我的 Seaborn'displot”子图是空的?的详细内容。更多信息请关注PHP中文网其他相关文章!

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