Seaborn调色板无法与线图配合使用

时间:2018-08-09 09:04:31

标签: python seaborn color-palette

自定义线条图的颜色时遇到了一些麻烦。我想用顺序的调色板显示一组光谱。参数“ palette =” blues“可以很好地工作,但是不接受任何不包含任何亮色的适当颜色列表(例如” Blues_d“)。

This is a representative graph showing how my plot looks like

下面您可以看到我正在使用的代码。

color = (sns.dark_palette("purple"))
sns.set()

ax = sns.lineplot(x="Wavelength", y="Absorption", hue="t (min)", lw=1, data=df1, palette=color, legend="brief")

问题是,我收到以下错误:

  

ValueError:调色板列表中的颜色数量错误。

所以问题是:我该如何使用lineplot函数以及蓝色,红色或不包含任何明亮颜色的顺序调色板?

我正在使用pandas版本0.23.3,matplotlib版本2.2.2和seaborn版本0.9.0

2 个答案:

答案 0 :(得分:1)

由于您在t (min)选项中提到了hue列,因此您需要知道该列的唯一值的总数。

假定该列中有5个唯一值。因此,您可以将数字设置为n_colors的{​​{1}}选项:

sns.color_palette

答案 1 :(得分:1)

如果您通过在 sns.color_palette 中将“as_cmap”参数设置为 True 将调色板设置为颜色图,则无需担心颜色计数:

ax = sns.lineplot(x="Wavelength", 
                      y="Absorption", 
                      hue="t (min)", 
                      lw=1, 
                      data=df1, 
                      palette=sns.color_palette('coolwarm', as_cmap = True), 
                      legend="brief")