Seaborn调色板不适用于线图

Jos*_*use 7 python color-palette seaborn

我在为线图自定义颜色方面遇到了一些麻烦.我想展示一系列具有连续调色板的光谱.参数"palette ="blues"工作正常,但不接受任何合适的颜色列表(如"Blues_d"),它们不包含任何明亮的颜色.

这是一个代表性的图表,显示了我的情节如何

下面你可以看到我正在使用的代码.

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")
Run Code Online (Sandbox Code Playgroud)

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

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

所以问题是:我如何使用线条图功能并使用蓝色,红色或其他任何不包含任何亮色的顺序调色板?

我使用的是pandas版本0.23.3,matplotlib版本2.2.2和seaborn版本0.9.0

Hak*_*kan 17

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

假设列中有 5 个唯一值。因此,您可以将数字设置为以下n_colors选项sns.color_palette

ax = sns.lineplot(x="Wavelength", 
                  y="Absorption", 
                  hue="t (min)", 
                  lw=1, 
                  data=df1, 
                  palette=sns.color_palette('coolwarm', n_colors=5), 
                  legend="brief")
Run Code Online (Sandbox Code Playgroud)


PJ_*_*PJ_ 5

如果您通过在 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")
Run Code Online (Sandbox Code Playgroud)