You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将两个不同颜色的seaborn jointplot合并到同一画布

把两个Seaborn Jointplot合并到同一画布的解决方案

sns.jointplot每次调用都会自动创建新的Figure对象,所以你之前的代码会生成两张独立图。要把两个数据集的jointplot内容合并到同一画布,需要用Seaborn的JointGrid(jointplot的底层实现类)来手动构建绘图。

实现步骤

  • 初始化JointGrid对象,指定x、y轴对应的列名;
  • 分别调用plot_joint和plot_marginals方法,叠加两个数据集的散点图和边缘分布;
  • 添加图例区分不同数据集,最后显示图形。

示例代码

import seaborn as sns
import matplotlib.pyplot as plt

# 初始化JointGrid,基于df的列定义坐标轴
g = sns.JointGrid(x=column_headers[4], y=column_headers[6], data=df)

# 绘制第一个数据集(df)的散点图和边缘直方图
g.plot_joint(sns.scatterplot, data=df, color="blue", label="df")
g.plot_marginals(sns.histplot, data=df, color="blue", alpha=0.5)

# 绘制第二个数据集(typesatt[0])的散点图和边缘直方图
g.plot_joint(sns.scatterplot, data=typesatt[0], color="red", label="typesatt[0]")
g.plot_marginals(sns.histplot, data=typesatt[0], color="red", alpha=0.5)

# 添加图例
g.ax_joint.legend()

# 展示图形
plt.show()

可选调整

  • 如果想用密度图代替直方图,把sns.histplot换成sns.kdeplot即可;
  • 调整alpha参数可以让边缘分布的叠加效果更清晰;
  • 可以通过g.set_axis_labels()自定义坐标轴标签。

内容的提问来源于stack exchange,提问作者Abdelrahman Darwish

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 04:05:19