我正在尝试使用自定义调色板将不同的值应用于hue
中的seaborn
类别,但是输出颜色与我的输入不匹配。举个例子:
import random
random.seed(1)
import matplotlib.pyplot as plt
import pandas as pd
import seaborn as sns
BLUE = (0, 160/255, 240/255)
YELLOW = (1, 210/255, 25/255)
GREEN = (110/255, 200/255, 5/255)
sns.set_palette(
palette=[BLUE, YELLOW, GREEN], n_colors=3
)
sns.palplot(sns.color_palette())
plt.show()
df = pd.DataFrame(
{
'x': [0, 0, 0, 1, 1, 1, 2, 2, 2],
'y': [random.random() for _ in range(9)],
'hue': ['A', 'B', 'C'] * 3
}
)
sns.barplot(data=df, x='x', y='y', hue='hue')
plt.show()
palplot
显示预期的颜色:
但是,在barplot
中使用它们时,它们会静音:
我的猜测是seaborn
在背景颜色之间进行插值。有什么办法可以防止这种情况的发生,只使用我定义的离散颜色?