gpt4 book ai didi

python - 在 seaborn.PairGrid 上绘制多个数据集作为不同颜色的 kdeplots

转载 作者:太空宇宙 更新时间:2023-11-04 03:01:34 25 4
gpt4 key购买 nike

我正在尝试绘制与 seaborn 文档中描述的情况非常相似的情况 http://seaborn.pydata.org/tutorial/axis_grids.html#plotting-pairwise-relationships-with-pairgrid-and-pairplot

有问题的例子可以在下面的几张图上找到,用 iris 数据集绘制了一个 sns.PairGrid。他们在样本对网格上绘制了不同的物种,物种颜色编码为 hue。

我基本上想这样做,但是使用 kde 等高线图。我得到了与他们格式相同的数据:

new_HP.head()
A C logsw Mass Range
0 -3.365547 0.977325 6.172032 0
1 -0.836703 0.962374 5.949639 0
2 -0.522476 0.931787 5.967940 0
3 -0.508345 0.974561 5.929046 0
4 -0.753747 0.905854 6.027479 0

“质量范围”取值 0、1、2、3。与

g = sns.PairGrid(new_HP, vars=['A', 'C', 'logsw'], hue="Mass Range")
g.map_diag(sns.kdeplot)
g.map_lower(sns.kdeplot)
g.map_upper(plt.scatter)

我得到以下情节 The kde contours are all the same colour and ugly.我想为每个“质量范围”bin 设置 kde countours 的颜色,就像在右上角,散点的颜色显示为色调。我该怎么做?

最佳答案

如果你不介意轻微滥用 Python 函数属性,你可以尝试这样的事情:

import seaborn as sns
import matplotlib.pyplot as plt
import pandas as pd
import numpy as np
from itertools import cycle

data = sns.load_dataset('iris')

def make_kde(*args, **kwargs):
sns.kdeplot(*args, cmap=next(make_kde.cmap_cycle), **kwargs)

make_kde.cmap_cycle = cycle(('Blues_r', 'Greens_r', 'Reds_r'))

pg = sns.PairGrid(data, vars=('sepal_length', 'sepal_width', 'petal_length'), hue='species')
pg.map_diag(sns.kdeplot)
pg.map_lower(make_kde)
pg.map_upper(plt.scatter)

这将循环存储在附加到 make_kde 函数的 cmap_cycle 属性中的颜色映射列表。

'iris' 数据集的结果如下所示: Example image

关于python - 在 seaborn.PairGrid 上绘制多个数据集作为不同颜色的 kdeplots,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40726733/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com