错误:seaborn Displot 未在子图中绘图
与 matplotlib 一起使用时,Seaborn displot 无法按预期生成并排图。 pyplot.子图。出现此错误的原因是 displot 是图形级函数,缺少子图所需的 'ax' 参数。
解决方案:
解决问题并显示两个图在同一行上,有必要使用支持“ax”参数的适当轴级图。在这种情况下,histplot 是首选。这是更正后的代码:
<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>
替代方法:
如果您更喜欢使用 displot,您可以使用 pd.melt 将数据重组为长格式,并将 displot 应用于转换后的数据框。
<code class="python">dfl = X_train.melt(id_vars='passenger', value_vars=['Age', 'Fare'], var_name='category', value_name='value') sns.displot(data=dfl, x='value', col='category', hue='passenger')</code>
其他注意事项:
对于具有多个数据框的轴级图,使用 pd.concat 将它们组合起来并分配一个唯一的“源”列用于识别每个数据点的来源。此列可用于 row=、col= 或 Hue=。
以上是为什么 Seaborn Displot 不能与 Matplotlib 子图一起使用?的详细内容。更多信息请关注PHP中文网其他相关文章!