Seaborn无hue参数时为多数据集核密度图添加颜色标签
解决Seaborn多数据集KDE图添加颜色标签的问题
方法1:合并数据集后用hue参数(推荐)
这是最贴合Seaborn设计逻辑的方式,通过合并数据集并新增分组列,让hue自动处理颜色区分和图例生成:
- 给每个数据集添加分组标识列
- 合并所有数据集
- 单次调用
kdeplot并指定hue参数
import pandas as pd import seaborn as sns # 为每个数据集添加分组标签 group1_df['group'] = 'Dataset 1' group2_df['group'] = 'Dataset 2' group3_df['group'] = 'Dataset 3' group4_df['group'] = 'Dataset 4' # 合并成单个数据集 combined_df = pd.concat([group1_df, group2_df, group3_df, group4_df]) # 绘制带颜色标签的KDE图 sns.kdeplot(data=combined_df, x="PEAK SPEED", hue="group")
方法2:手动指定颜色与标签,添加图例
如果不想合并数据集,可以在每次绘制时单独指定color和label,最后调用plt.legend()显示图例:
import seaborn as sns import matplotlib.pyplot as plt # 逐个绘制并指定颜色、标签 sns.kdeplot(data=group1_df, x="PEAK SPEED", color="red", label="Dataset 1") sns.kdeplot(data=group2_df, x="PEAK SPEED", color="green", label="Dataset 2") sns.kdeplot(data=group3_df, x="PEAK SPEED", color="blue", label="Dataset 3") sns.kdeplot(data=group4_df, x="PEAK SPEED", color="orange", label="Dataset 4") # 显示图例 plt.legend()
两种方式对比:
- 方法1更简洁,Seaborn会自动适配配色方案,后续调整分组更方便
- 方法2自由度更高,可精准控制每条曲线的颜色
内容的提问来源于stack exchange,提问作者bloomsdayforever
相关产品推荐
相关产品推荐

