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

如何在pairplot非对角段拟合全局回归线并保留hue数据点区分

实现全局回归线的Iris Pairplot方案

可以实现,核心思路是先绘制带类别颜色的散点对图,再手动给每个子图添加基于全局数据集的回归线。具体代码如下:

步骤1:绘制分类散点Pairplot

先生成只包含分类散点的pairplot,避免自动生成分组回归线:

import seaborn as sns
import matplotlib.pyplot as plt
import pandas as pd

# 加载Iris数据集(若已有自定义df可跳过该行)
df = sns.load_dataset("iris")

# 绘制带hue区分的散点对图,仅保留左下三角
iris_pairplot = sns.pairplot(
    df, 
    hue="variety", 
    palette="Dark2", 
    height=3, 
    aspect=1, 
    corner=True, 
    kind="scatter"  # 指定只画散点,不自动生成分组回归线
)

步骤2:批量添加全局回归线

遍历pairplot的所有子图,用regplot基于全量数据拟合回归线,关闭散点绘制避免重复:

# 获取数据集的数值型特征列
numeric_cols = df.select_dtypes(include=['float64']).columns

# 遍历左下三角的每个子图
for i in range(len(numeric_cols)):
    for j in range(i):
        ax = iris_pairplot.axes[i, j]
        # 获取当前子图对应的x、y特征列名
        x_col = numeric_cols[j]
        y_col = numeric_cols[i]
        # 添加全局回归线,设置统一颜色与线宽
        sns.regplot(
            data=df, 
            x=x_col, 
            y=y_col, 
            ax=ax, 
            scatter=False, 
            color="black", 
            line_kws={"linewidth": 1.5}
        )

步骤3:调整布局并保存

最后设置标题、优化布局并导出图片:

iris_pairplot.fig.suptitle("Pairplot of traits for full Iris sample", fontsize="xx-large")
plt.tight_layout()
plt.savefig('iris_pairplot.png')
plt.show()

效果说明

这样生成的图中,散点会按variety类别区分颜色,而每条回归线都是基于整个Iris数据集拟合的全局线,不会按类别拆分。尽管regplot是单图工具,但通过遍历pairplot的子图集合,可以批量完成所有散点图的回归线添加。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 13:03:34