簡體   English   中英

如何為多個類別設置深淺的調色板?

[英]How to set seaborn color palette for multiple categories?

我正在傳遞要使用pd.scatterplot繪制的熊貓數據pd.scatterplot並希望使用'bright'調色板。 顏色將由整數I的值確定,我將其作為hue傳遞給繪圖函數。

問題在於,這僅在hue系列只有兩個不同的值時有效。 當一個礦石中只有兩個以上的不同值時,繪圖默認為米色至紫色調色板。

使用sns.set_palette('bright')設置調色板時,所有事情都會如上所述發生。 但是,當我在繪圖函數調用中執行palette='bright'並且n_classes是!= 2 ),我得到了一個明確的Value Error拋出:

ValueError: Palette {} not understood

這是復制代碼:

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

sns.set_palette('bright')        # first method

n_classes = 3

a = np.arange(10)
b = np.random.randn(10)
c = np.random.randint(n_classes, size=10)

s = pd.DataFrame({'A': a, 'B':b, 'C': c})

sns.scatterplot(data=s, x='A', y='B', hue='C')
plt.show()

對於第二種方法,只需將scatterplot調用更改為

sns.scatterplot(data=s, x='A', y='B', hue='C', palette='bright')

有沒有辦法在我想要的調色板中獲得多個色相級別? 我做錯了什么還是一個錯誤?

您需要傳遞顏色數量

這樣的事情。

sns.scatterplot(data=s,
                x='A',
                y='B',
                hue='C',
               palette=sns.color_palette('bright', s.C.unique().shape[0])
               )

暫無
暫無

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

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