Python可视化扩展库Matplotlib中使用参数cmap实现颜色映射
开学第一课:一定不要这样问老师Python问题在线开放课程“Python程序设计基础”第7次开课通知董付国老师Python系列教材推荐与选用参考=============版权声明:由于公众号后台规则问题,本文暂时无法设置原创标记,但仍属原创内容,微信公众号“Python小屋”坚持只发原创技术文章。=============推荐教材:《Python程序设计(第3版)》,(I...
=============
版权声明:由于公众号后台规则问题,本文暂时无法设置原创标记,但仍属原创内容,微信公众号“Python小屋”坚持只发原创技术文章。
=============
推荐教材:
《Python程序设计(第3版)》,(ISBN:978-7-302-55083-9),董付国,清华大学出版社,2020年6月出版,2022年7月第13次印刷,山东省一流本科课程“Python应用开发”配套教材,清华大学出版社2020、2021年度畅销图书(本书第二版为2019、2020年度畅销图书)
京东购买链接:https://item.jd.com/12668739.html
天猫、当当、京东均有销售,可以选择自己常用平台搜索“董付国 第3版”找到本书。
配套资源:教学大纲(基于工程教育专业认证,含课程思政)、电子教案、微课视频、PPT课件、例题源码、习题答案、在线练习系统。
适用学时:>=64
页数:381
定价:59.8
微课视频:124个,共24小时20分钟
====================
在使用Python扩展库Matplotlib进行可视化时,不少函数支持使用参数cmap指定配色方案。例如,下面的代码模拟了一个3像素的图像并设置了Blues配色方案,实现了从白色到蓝色(蓝色分量饱和度从0到100%)的渐变,根据像素的值插值计算合适的颜色进行填充。
下面的代码设置了Blues_r配色方案,后缀_r表示反向映射,插值计算的方向与Blues相反。其他配色方案中带或不带后缀_r的一对也是插值填充方向相反。
下面的代码修改了像素的值,可以发现,配色方案把图像中最大值像素填充为白色,最小值像素填充为蓝色,并不关心具体的值,只关心值的范围和分布情况。也就是说,三像素图像300、800、200和三像素图像3、8、2的填充结果是一样的。
Matplotlib预置了166个配色方案,下面的代码可以列出Matplotlib预置的全部配色方案:
这些配色方案大致可以分为下面的几类:
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种配色方案对同一个图像进行填充并展示了不同配色方案的效果。
运行结果如下:
为方便比较同一组配色方案的插值方向,修改上面的代码如下(请自行发现修改之处):
运行结果如下:
下面代码演示了如何在绘制三维曲面时指定配色方案:
下面代码演示了如何在绘制散点图时设置配色方案:
温馨提示:
关注微信公众号“Python小屋”,在公众号后台发送消息“大事记”可以查看董付国老师与Python有关的重要事件;发送消息“教材”可以查看董付国老师出版的Python系列教材(已累计印刷超过150次)的适用专业详情;发送消息“历史文章”可以查看董付国老师推送的超过1300篇原创技术文章;发送消息“会议”或“培训”可以查看近期董付国老师的培训安排;发送消息“微课”可以查看董付国老师免费分享的超过600节Python微课视频;发送消息“课件”可以查看董付国老师免费分享的Python教学资源;发送消息“小屋刷题”可以下载“Python小屋刷题神器”,免费练习2256道客观题和542道编程题,题库持续更新;发送消息“编程比赛”了解Python小屋编程大赛详情。
更多推荐
所有评论(0)