seaborn 0.2的默认颜色调色板是什么?

4 投票
2 回答
4991 浏览
提问于 2025-04-17 23:50

我立刻喜欢上了seaborn这个库,因为它把Matplotlib默认的颜色搭配改成了一种我之前没见过的很不错的配色(黑色-蓝色-绿色-棕色-粉色-紫色-白色),适用于图像(imshowpcolormeshcontourf等):

plt.contourf(np.random.random((20,20)))

seaborn v. 0.2.1下的默认contourf图

但是当我把这个库从0.21版本升级到0.3版本时,默认的配色变成了一种灰度色:

seaborn v. 0.3下的默认contourf图

那么,0.2.1版本的默认颜色搭配叫什么?我该如何把它找回来呢?

2 个回答

6

补充一下j08lue的回答,之所以发生变化,是因为很难找到一种适合所有数据的默认颜色映射。如果使用了不合适的颜色映射,可能会引发很多问题。希望通过将默认设置为灰度图,能促使大家更认真地考虑自己的数据,并选择合适的颜色映射。

顺便说一下,所有(大部分?)使用颜色映射的matplotlib函数都会接受一个叫做cmap的参数,比如plt.contourf(x, y, z, cmap="cubehelix")这样的写法是可以正常工作的。

7

在seaborn 0.2.1版本中,默认的颜色调色板是Dave Green的'cubehelix',而在0.3版本中,你可以通过以下方式恢复它:

import seaborn as sns
sns.set(rc={'image.cmap': 'cubehelix'})

一种“暴力”方法来找出这个调色板,就是退回到旧版本,然后创建一个默认的图表:

img = plt.contourf(np.random.random((20,20)))
print(img.cmap.name)

实际上,seaborn中的默认设置是在seaborn的这个文件中定义的。查看一下Matplotlib的示例matplotlibrc文件也可能有助于找到合适的参数进行调整。

撰写回答