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

如何为sns.pairplot的kde hue分组设置不同线条样式

解决方案
  • 直接通过diag_kws传递线型列表无法生效,是因为该参数会将统一的参数值传递给所有分组的KDE绘图逻辑,不支持自动按hue分组映射不同样式
  • 可以在pairplot绘制完成后,遍历对角线的子图对象,手动为不同hue分组的KDE线设置对应线型

完整可运行代码如下:

import seaborn as sns
import matplotlib.pyplot as plt

iris = sns.load_dataset("iris")
# 按hue分组的顺序定义对应线型,顺序可通过g.hue_names确认
linestyles = ['solid', 'dotted', 'dashed']

# 正常绘制pairplot,diag_kws只传通用参数
g = sns.pairplot(iris, kind="scatter", 
                 hue = 'species', 
                 diag_kind='auto',
                 diag_kws={'bw_adjust':.03}
                )

# 遍历所有对角线子图修改线型
for ax in g.diag_axes:
    for line, ls in zip(ax.lines, linestyles):
        line.set_linestyle(ls)

plt.show()

如果需要调整对应分组的线型,只需要修改linestyles列表的元素即可,保证列表顺序和g.hue_names输出的hue类别顺序一致即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 02:54:05