seaborn.pairplot() 改变每个图形的颜色

ged*_*133 3 python seaborn

我试图pairplot用单独的颜色为每个图形制作一个简单的图形。我不知道这是否可行,因为我没有使用hue.

我的数据集是这样的:

      High Jump  Discus Throw  Long Jump
0           859           732       1061
1           749           823        975
2           887           778        866
3           878           790        898
4           803           789        913
     ...           ...        ...
7963        714           571        760
7964        767           573        845
7965        840           461        804
7966        758           487        720
7967        714           527        809
Run Code Online (Sandbox Code Playgroud)

我的代码和图表如下所示:

t = sns.pairplot(new)
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

有什么办法可以让这个颜色更鲜艳吗?

Diz*_*ahi 9

由于PairGrid自动将颜色属性传递给绘图函数,因此每个绘图获得不同颜色的一种方法是创建自己的绘图函数,忽略传递的颜色PairGrid(请注意,您hues显然失去了对颜色代码进行着色的可能性)

colors = iter(['xkcd:red purple', 'xkcd:pale teal', 'xkcd:warm purple',
       'xkcd:light forest green', 'xkcd:blue with a hint of purple',
       'xkcd:light peach', 'xkcd:dusky purple', 'xkcd:pale mauve',
       'xkcd:bright sky blue', 'xkcd:baby poop green', 'xkcd:brownish',
       'xkcd:moss green', 'xkcd:deep blue', 'xkcd:melon',
       'xkcd:faded green', 'xkcd:cyan', 'xkcd:brown green',
       'xkcd:purple blue', 'xkcd:baby shit green', 'xkcd:greyish blue'])

def my_scatter(x,y, **kwargs):
    kwargs['color'] = next(colors)
    plt.scatter(x,y, **kwargs)

def my_hist(x, **kwargs):
    kwargs['color'] = next(colors)
    plt.hist(x, **kwargs)

iris = sns.load_dataset("iris")
g = sns.PairGrid(iris)
g.map_diag(my_hist)
g.map_offdiag(my_scatter)
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明