Я создаю набор сгруппированных сюжетов для скрипки со следующим:
fig = plt.figure(1)
ax1 = fig.add_subplot(3,1,1)
sns.violinplot(x='x', y='y1', data=df_y1_all, split=True, inner=None, hue="hues_param", palette={"left":"r","right":"b"})
ax1.legend()
ax2 = fig.add_subplot(3,1,2)
sns.violinplot(x='x', y='y2', data=df_y2_all, split=True, inner=None, hue="hues_param", palette={"left":"r","right":"b"})
ax3 = fig.add_subplot(3,1,3)
sns.violinplot(x='x', y='y3', data=df_y3_all, split=True, inner=None, hue="hues_param", palette={"left":"r","right":"b"})
ax3.legend('')
plt.show()
, который создает что-то вроде следующего (я опускаю некоторые из чувствительных имен параметров, так как это уже опубликованная работа):
![plot](https://i.stack.imgur.com/laDPT.png)
Я хотел бы иметь градиент красных и градиент синих в соответствии с аргументом palette={"left":"r","right":"b"}
, но когда я пытаюсь передать имена цветовых палитр, я получаю ошибку:
ValueError: Could not generate a palette for ['Blues', 'Reds']
или для любой другой названной палитры Seaborn.
Поскольку мои данные конфиденциальны, я не могу поделиться исходным кадром данных, но он основан на рабочем примере из документов :
import seaborn as sns
sns.set(style="whitegrid", palette="pastel", color_codes=True)
# Load the example tips dataset
tips = sns.load_dataset("tips")
# Draw a nested violinplot and split the violins for easier comparison
sns.violinplot(x="day", y="total_bill", hue="sex", data=tips, split=True,
inner="quart", palette={"Male": "b", "Female": "y"})
sns.despine(left=True)
Который производит:
![plot2](https://i.stack.imgur.com/JgY9M.png)
В любом случае можно управлять градиентом палитры или вызывать предварительно созданный градиент в аргументах графика?
Спасибо!