开学第一课:一定不要这样问老师Python问题

在线开放课程“Python程序设计基础”第7次开课通知

董付国老师Python系列教材推荐与选用参考

=============

版权声明:由于公众号后台规则问题,本文暂时无法设置原创标记,但仍属原创内容,微信公众号“Python小屋”坚持只发原创技术文章。

=============

推荐教材:

《Python程序设计(第3版)》,(ISBN:978-7-302-55083-9),董付国,清华大学出版社,2020年6月出版,2022年7月第13次印刷,山东省一流本科课程“Python应用开发”配套教材,清华大学出版社2020、2021年度畅销图书(本书第二版为2019、2020年度畅销图书)

221ac460daebafb64a2098f8ccc330c4.png

京东购买链接:https://item.jd.com/12668739.html

天猫、当当、京东均有销售,可以选择自己常用平台搜索“董付国 第3版”找到本书。

配套资源:教学大纲(基于工程教育专业认证,含课程思政)、电子教案、微课视频、PPT课件、例题源码、习题答案、在线练习系统。

适用专业:计算机、网络工程、软件工程以及相关专业。

适用学时:>=64

页数:381

定价:59.8

微课视频:124个,共24小时20分钟

教学大纲:《Python程序设计(第3版)》配套教学大纲

习题答案:《Python程序设计(第3版)》课后习题答案

====================

在使用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

温馨提示:

关注微信公众号“Python小屋”,在公众号后台发送消息“大事记”可以查看董付国老师与Python有关的重要事件;发送消息“教材”可以查看董付国老师出版的Python系列教材(已累计印刷超过150次)的适用专业详情;发送消息“历史文章”可以查看董付国老师推送的超过1300篇原创技术文章;发送消息“会议”或“培训”可以查看近期董付国老师的培训安排;发送消息“微课”可以查看董付国老师免费分享的超过600节Python微课视频;发送消息“课件”可以查看董付国老师免费分享的Python教学资源;发送消息“小屋刷题”可以下载“Python小屋刷题神器”,免费练习2256道客观题和542道编程题,题库持续更新;发送消息“编程比赛”了解Python小屋编程大赛详情。

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐