Seaborn - KDE 线图更改颜色图

Seaborn - KDE line plot change colormap

我有一个 seaborn KDE 图,但我正在努力更改颜色图。即使我更改 palatte 它仍然保持 Set1,即使 palatte 更改为 Blues 或不同的调色板颜色。我如何更改线图以在颜色图中具有颜色 viridis? 代码也参考了这个问题和非常有用的答案:

import seaborn as sns
import pandas as pd


np.random.seed(1234)
array_2d = np.random.random((5, 20))

sns.kdeplot(data=pd.DataFrame(array_2d.T, columns=range(1, 6)), palette='Set1', multiple='layer')
plt.show()

但是当我尝试更改颜色图时,我不断收到错误消息:

cmap = sns.color_palette("viridis", as_cmap=True)

sns.kdeplot(data=pd.DataFrame(array_2d.T, columns=range(1, 6)),cmap=cmap, multiple='layer')
plt.show()

---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
/tmp/ipykernel_216114/3245378387.py in <module>
      1 cmap = sns.color_palette("viridis", as_cmap=True)
      2 
----> 3 sns.kdeplot(data=pd.DataFrame(array_2d.T, columns=range(1, 6)),cmap=cmap, multiple='layer')
      4 plt.show()

AttributeError: 'Line2D' object has no property 'cmap'

如何通过 viridis 或其他颜色图将线条颜色更改为不同的颜色?

IIUC,使用 set_palette:

sns.set_palette('viridis')
sns.kdeplot(data=pd.DataFrame(array_2d.T, columns=range(1, 6)),  multiple='layer')

输出:

编辑:

正如 JohanC 所指出的,只需将 palette='viridis' 传递给 kdeplot

palette=list(plt.cm.viridis(np.linspace(0, 1, 5))).