簡體   English   中英

seaborn.pairplot() 改變每個圖形的顏色

[英]seaborn.pairplot() changing the color of each graph

我正在嘗試使用不同顏色的每個圖形生成一個簡單的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

我的代碼和圖表如下所示:

t = sns.pairplot(new)

在此處輸入圖片說明

有什么辦法可以讓這個顏色更鮮艷嗎?

由於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)

在此處輸入圖片說明

由於您沒有任何諸如性別之類的分類數據,您可以使用 PairGrid 來操作網格中的上、下或對角圖形,使其更加豐富多彩。

import seaborn as sns
import pandas as pd
from matplotlib import pyplot as plt

df = pd.read_csv('dataset.csv')

g = sns.PairGrid(df)
g.map_upper(sns.scatterplot,color='red')
g.map_lower(sns.scatterplot, color='green')
g.map_diag(plt.hist)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM