4

我立即喜欢的一件事seaborn是,它将 Matplotlib 图像的默认调色板(、、、imshow... pcolormeshcontourf设置为我以前从未见过的非常好的调色板(黑色-蓝色-绿色-棕色-粉色-紫色-白色) :

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

seaborn v. 0.2.1 下的默认轮廓图

但是当我将包从版本 0.21 升级到 0.3 时,这个默认值变成了一些灰度:

seaborn v. 0.3 下的默认轮廓图

v. 0.2.1 中的默认调色板是什么,我该如何取回它?

4

2 回答 2

6

seaborn v. 0.2.1 中的默认调色板是Dave Green 的'cubehelix',您可以在 v. 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 repo 的这个文件中定义的。查看Matplotlib 示例 matplotlibrc 文件也可能有助于找到要调整的正确参数。

于 2014-03-25T14:28:04.963 回答
6

只是为了补充 j08lue 的答案,它改变的原因是几乎不可能选择一个适用于所有类型数据的默认颜色图,并且颜色图不好会导致很多 问题。希望通过将默认设置为灰度地图,它将鼓励人们思考他们的数据并选择正确的地图类型。

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

于 2014-03-25T16:27:11.670 回答