使用Seaborn分裂小提琴图和调色板

时间:2018-05-03 12:21:00

标签: python pandas matplotlib seaborn

我正在创建一组分组的小提琴图,其中包含以下内容:

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

我希望根据参数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)

产生:

plot2

是否有控制调色板渐变或在绘图参数中调用预先制作的渐变?

谢谢!

0 个答案:

没有答案