在seaborn版本0.2中图像的默认调色板是什么?

j08*_*lue 4 python matplotlib seaborn

我立刻喜欢上了有关的事情seaborn是,它设定图像Matplotlib默认调色板(imshow,pcolormesh,contourf,...),以一个非常好的一个我从来没有见过的(黑-蓝-绿褐色,粉紫色,白色) :

plt.contourf(np.random.random((20,20)))
Run Code Online (Sandbox Code Playgroud)

在seaborn v.0.2.1下的默认contourf图

但是当我将软件包从版本0.21升级到0.3时,此默认值更改为某些灰度:

seaborn v.0.3下的默认contourf图

调用v.0.2.1的默认调色板是什么?如何取回?

j08*_*lue 6

seaborn v.0.2.1中的默认调色板是Dave Green's'cubehelix',您可以通过版本0.3来获取它

import seaborn as sns
sns.set(rc={'image.cmap': 'cubehelix'})
Run Code Online (Sandbox Code Playgroud)

找到这个问题的"强力"方法是回滚到旧版本并创建默认情节:

img = plt.contourf(np.random.random((20,20)))
print(img.cmap.name)
Run Code Online (Sandbox Code Playgroud)

实际上,seaborn中的默认值是在seaborn repo中的此文件中定义的.查看Matplotlib示例matplotlibrc文件也可能有助于找到要调整的正确参数.


mwa*_*kom 6

只需添加到j08lue的答案,它改变的原因是,它几乎是不可能选择一个默认颜色映射适合于各种数据,并有一个坏的彩色地图会导致很多 问题.希望通过将默认设置为灰度图,它将鼓励人们思考他们的数据并选择正确的地图.

顺便说一下,使用色彩图绘制的所有(大多数?)matplotlib函数将采用cmap关键字参数,即可行plt.contourf(x, y, z, cmap="cubehelix").