Я передаю кадр данных pandas для построения с pd.scatterplot
и хочу использовать цветовую палитру 'bright'
.Цвет должен определяться значениями в целочисленной серии I, которые передаются функции построения в виде hue
.
Проблема заключается в том, что это работает только тогда, когда в серии hue
есть только два различных значения.Если в нем только одна или более двух разных значений, для графика по умолчанию используется цветовая палитра бежево-фиолетового цвета.
При настройке цветовой палитры с помощью sns.set_palette('bright')
все происходит, как описано выше.Но когда я выполняю palette='bright'
внутри вызова функции построения графиков ( и n_classes равен! = 2 ), я получаю явную ошибку Value:
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')
Есть ли способ получить несколько уровней оттенков в нужной палитре?Я что-то не так делаю или это ошибка?