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

咨询Seaborn pairplot是否支持输入多个同列名不同数据的DataFrame

解决Seaborn pairplot多DataFrame对比的问题

你说得没错,Seaborn的pairplot()默认确实只接受单个DataFrame作为输入——官方文档里的示例也都是基于单一数据集的。不过要实现你想要的多数据集对比可视化,只需要简单处理一下数据就行,步骤很清晰:

核心思路:合并DataFrame并添加区分标识

因为你的两个DataFrame列名完全一致,我们可以给每个数据集添加一个类别列来标记数据来源,然后把它们合并成一个大的DataFrame,最后用pairplot的hue参数来区分不同数据集。

具体步骤与代码示例

  1. 给每个DataFrame添加类别标识列
    给df1和df2分别添加一列,用来区分是"县内学校数量"还是"县内失业率"数据:

    import pandas as pd
    import seaborn as sns
    
    # 假设df1和df2是你已有的两个DataFrame,列名完全一致
    df1["数据类别"] = "县内学校数量"
    df2["数据类别"] = "县内失业率"
    
  2. 合并两个DataFrame
    用pd.concat()把两个数据集合并成一个:

    combined_df = pd.concat([df1, df2], ignore_index=True)
    
  3. 调用pairplot并指定hue参数
    现在就可以用合并后的DataFrame绘图,通过hue="数据类别"让不同数据集的点用不同颜色区分:

    # 绘制pairplot,hue参数会自动生成图例区分不同数据集
    sns.pairplot(combined_df, hue="数据类别")
    

进阶优化:增加标记样式区分

如果觉得颜色区分不够明显,还可以搭配markers参数给不同数据集设置不同的点形状,比如:

sns.pairplot(combined_df, hue="数据类别", markers=["o", "s"])

这样"学校数量"的点用圆形,"失业率"的点用方形,对比会更直观。

内容的提问来源于stack exchange,提问作者Glenn G.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 08:51:58