我正在创建一组分组的小提琴图,其中包含以下内容:
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()
这会创建如下内容(我省略了一些敏感参数名称,因为这是预先发布的工作):
我希望根据参数palette={"left":"r","right":"b"}
得到一个红色渐变和一个蓝色渐变,但是当我尝试传递调色板的名称时,我得到一个错误:
ValueError: Could not generate a palette for ['Blues', 'Reds']
或任何其他“命名的”Seaborn调色板。
由于我的数据很敏感,我无法共享原始数据框,但它基于docs的工作示例:
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)
产生:
是否有控制调色板渐变或在绘图参数中调用预先制作的渐变?
谢谢!