[英]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.