基于python,plot如何画等高线/等温线/等压线/决策边界图?
发布于 作者:苏南大叔 来源:程序如此灵动~

python
画图中有一种边界图,或者称为等高线图/等温线图/等压线图。在人工智能里面,称之为决策边界图。其实,背后的原理都是一样的,都是来自于matplotlib.pyplot
的contourf()
函数。它可以根据输入的数据绘制出二维数据集的边界线图像。在本文中,苏南大叔将对其做个简单的探索。

苏南大叔的“程序如此灵动”博客,记录苏南大叔的代码经验总结。本文测试环境:win10
,python@3.11.0
,numpy@1.24.2
,matplotlib@3.7.1
。
数据准备
数据准备的话,还是基于下面文章的数据范例。参考文章:
总之,这里拿到了待处理的原始网格点信息。
准备决策数据
然后需要的数据是等高线数据,这个是重点哦。整个边界图的样子(漂亮程度、线条走向)的主要依据来源,就是下面这个数据了。数据很重要,但是数据的来源逻辑,可就是根据大家的实际情况来编写的了,每个人的写法都不一样。
它的数据就是等高线的“高”,等温线的“温”,等压线的“压”。总之,这里得到的是一系列的数据,contourf()
会对这里的数据进行分组,然后合并成色块进行展示。并且,可能是一些互不相等的数字,也可能只是两种情况的true
和false
。

画等高线【本文主体】
想象成一个三维立体空间坐标系就比较好理解了,x,y
是二维坐标,z
坐标用于在竖直方向上画边界线。

分支一,调整等高线的层次(线条数)
下面代码里面的数字2
就是线条数,这里解释为线条数略有些牵强,待后续补充。
这里的线条数设置3,显示处理的分界线就是4。设置5,就显示出来6条分界线。(如果能分开这么多的话)

分支二,设置等高线颜色及colorbar
cmap
参数和color
参数冲突,只能设置一个,推荐设置cmap
。

.colorbar()
就是对于边界线的决策依据做个简单的图例说明。这个暂作伏笔,以后在展开叙述。

图像增益【便于理解】
这部分准备先画个散点图,然后给每个点上加个文字,便于查看理解最终的决策图的决策依据。仅仅是个增益的选项,实际的决策图,没有这些散点,边界图依然是可以画出来的。

这部分代码,涉及的参考文章比较多:
- https://newsn.net/say/plot-scatter.html
- https://newsn.net/say/plot-scatter-2.html
- https://newsn.net/say/plot-text.html
- https://newsn.net/say/plot-annotate.html
- https://newsn.net/say/python-zip.html
- https://newsn.net/say/ndarray-flatten.html
结束语
plot
画图,在大数据的数据展示层面,是非常重要的。更多python
相关文章,请参考苏南大叔的文章链接:


