您当前的位置:首页 > 计算机 > 编程开发 > Python

Python可视化扩展库Matplotlib中使用参数cmap实现颜色映射

时间:01-08来源:作者:点击数:

在使用Python扩展库Matplotlib进行可视化时,不少函数支持使用参数cmap指定配色方案。例如,下面的代码模拟了一个3像素的图像并设置了Blues配色方案,实现了从白色到蓝色(蓝色分量饱和度从0到100%)的渐变,根据像素的值插值计算合适的颜色进行填充。

fa5a7a3d58310536ce7f5ecb25982d96.png

下面的代码设置了Blues_r配色方案,后缀_r表示反向映射,插值计算的方向与Blues相反。其他配色方案中带或不带后缀_r的一对也是插值填充方向相反。

3f521d439bee03941509e3b8b9d21075.png

下面的代码修改了像素的值,可以发现,配色方案把图像中最大值像素填充为白色,最小值像素填充为蓝色,并不关心具体的值,只关心值的范围和分布情况。也就是说,三像素图像300、800、200和三像素图像3、8、2的填充结果是一样的。

1a60007b9a83bbfea7e6c279a3d31658.png

Matplotlib预置了166个配色方案,下面的代码可以列出Matplotlib预置的全部配色方案:

9d2dce38e993b3a46f15746bb5b5c11e.png

这些配色方案大致可以分为下面的几类:

1)Sequential:在两种色调之间近似平滑变化,通常是从低饱和度(例如白色)到高饱和度(例如明亮的蓝色)。颜色过度自然,容易和连续的数字对应。例如,'Blues', 'BuGn', 'BuPu', 'GnBu', 'Greens', 'Greys', 'Oranges', 'OrRd', 'PuBu', 'PuBuGn', 'PuRd', 'Purples', 'RdPu', 'Reds', 'YlGn', 'YlGnBu', 'YlOrBr', 'YlOrRd', 'afmhot', 'autumn', 'bone', 'cool', 'copper', 'gist_heat', 'gray', 'hot', 'pink', 'spring', 'summer', 'winter'以及对应的反方向配色方案都属于这一类型。

2)Uniform:标准色两端对比大,整体饱和度高,颜色鲜亮。例如,'viridis', 'inferno', 'plasma', 'magma'以及对应的反方向配色方案都属于这一类型。

3)Diverging:具有中间值(通常是浅色),并在高值和低值处平滑变化为两种不同的色调,两端对比大,但是用白色、灰色过度,整体偏灰。Cyclic和Diverging相反,两端偏灰,但中间颜色对比鲜明。例如,'BrBG', 'bwr', 'coolwarm', 'PiYG', 'PRGn', 'PuOr', 'RdBu', 'RdGy', 'RdYlBu', 'RdYlGn', 'Spectral', 'seismic'以及对应的反方向配色方案都属于这一类型。

4)Qualitative:离散化色图,效果离散、跳跃,不同颜色区别很大。例如,'Accent', 'Dark2', 'Paired', 'Pastel1', 'Pastel2', 'Set1', 'Set2', 'Set3'以及对应的反方向配色方案都属于这一类型。

5)Miscellaneous:其他配色方案,例如'gist_earth', 'terrain', 'ocean', 'gist_stern', 'brg', 'CMRmap', 'cubehelix', 'gnuplot', 'gnuplot2', 'gist_ncar','nipy_spectral', 'jet', 'rainbow', 'gist_rainbow', 'hsv', 'flag', 'prism'以及对应的反方向配色方案。

下面的代码分别使用Matplotlib预置的166种配色方案对同一个图像进行填充并展示了不同配色方案的效果。

7cda7debc84cc96f9220fd1b0c798d48.png

运行结果如下:

27715025a76a10a0584a3f297a507390.png

为方便比较同一组配色方案的插值方向,修改上面的代码如下(请自行发现修改之处):

b754fef86c4fef75ceb171fb2a278bbd.png

运行结果如下:

aa5ee5268e1caa933155c65cc4c3c842.png

下面代码演示了如何在绘制三维曲面时指定配色方案:

132c5f3ef43e65449b0e9c8a7b096d85.png

下面代码演示了如何在绘制散点图时设置配色方案:

93e039f9a7d6ffe8b700c9b6ad424a81.png
方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门