咨询Seaborn pairplot是否支持输入多个同列名不同数据的DataFrame
解决Seaborn pairplot多DataFrame对比的问题
你说得没错,Seaborn的pairplot()默认确实只接受单个DataFrame作为输入——官方文档里的示例也都是基于单一数据集的。不过要实现你想要的多数据集对比可视化,只需要简单处理一下数据就行,步骤很清晰:
核心思路:合并DataFrame并添加区分标识
因为你的两个DataFrame列名完全一致,我们可以给每个数据集添加一个类别列来标记数据来源,然后把它们合并成一个大的DataFrame,最后用pairplot的hue参数来区分不同数据集。
具体步骤与代码示例
给每个DataFrame添加类别标识列
给df1和df2分别添加一列,用来区分是"县内学校数量"还是"县内失业率"数据:import pandas as pd import seaborn as sns # 假设df1和df2是你已有的两个DataFrame,列名完全一致 df1["数据类别"] = "县内学校数量" df2["数据类别"] = "县内失业率"合并两个DataFrame
用pd.concat()把两个数据集合并成一个:combined_df = pd.concat([df1, df2], ignore_index=True)调用pairplot并指定hue参数
现在就可以用合并后的DataFrame绘图,通过hue="数据类别"让不同数据集的点用不同颜色区分:# 绘制pairplot,hue参数会自动生成图例区分不同数据集 sns.pairplot(combined_df, hue="数据类别")
进阶优化:增加标记样式区分
如果觉得颜色区分不够明显,还可以搭配markers参数给不同数据集设置不同的点形状,比如:
sns.pairplot(combined_df, hue="数据类别", markers=["o", "s"])
这样"学校数量"的点用圆形,"失业率"的点用方形,对比会更直观。
内容的提问来源于stack exchange,提问作者Glenn G.
相关产品推荐
相关产品推荐

