seaborn 0.2的默认颜色调色板是什么?
我立刻喜欢上了seaborn
这个库,因为它把Matplotlib默认的颜色搭配改成了一种我之前没见过的很不错的配色(黑色-蓝色-绿色-棕色-粉色-紫色-白色),适用于图像(imshow
、pcolormesh
、contourf
等):
plt.contourf(np.random.random((20,20)))
但是当我把这个库从0.21版本升级到0.3版本时,默认的配色变成了一种灰度色:
那么,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文件也可能有助于找到合适的参数进行调整。