Python 数据分析三剑客之 Matplotlib(八):等高线/等值线图的绘制

Python 数据分析三剑客之 Matplotlib(八):等高线/等值线图的绘制

💡 原文中文,约8900字,阅读约需22分钟。
📝

内容提要

本文介绍了使用Matplotlib绘制等高线图的基本方法,包括等高线的概念、numpy.meshgrid()的使用、绘制和填充等高线的方法(contour和contourf),以及如何添加标记和设置颜色样式。通过示例代码,读者可以学习生成网格点坐标、绘制等高线图并进行颜色填充。

🔎

延伸解读

理解 meshgrid 在等高线绘制中的必要性

等高线图需要每个点的高度值,而 matplotlib.pyplot.contour() 要求 X、Y 和 Z 均为二维数组。numpy.meshgrid() 将一维的 x 和 y 坐标转换为二维网格矩阵,使得每个网格点都有对应的坐标。例如,x 为 [1,2,3],y 为 [7,8,9] 时,meshgrid 生成两个 3x3 矩阵,分别表示每个点的横纵坐标。这样,当计算高度函数 f 时,可以直接对矩阵进行向量化运算,得到每个点的高度,从而绘制等高线。

contour 与 contourf 的选择:线条与填充

contour() 绘制等高线线条,适合观察高度变化的轮廓和趋势;contourf() 则对等高线之间的区域进行颜色填充,能更直观地展示高度分布。两者函数签名和返回值相同,但 contourf() 会填充颜色。在实际使用中,可以单独使用一种,也可以结合使用:先用 contourf() 填充颜色,再用 contour() 绘制线条,并配合 clabel() 添加标记,这样既能看清高度分布,又能读取具体数值。

标记与颜色设置的实用技巧

clabel() 可以为等高线添加数值标记,通过 inline 参数控制是否在标记处移除轮廓线,避免文字与线条重叠。colors 参数支持单色或颜色列表,若为单色,负等高线默认显示为虚线,便于区分正负高度。cmap 参数可设置渐变色,并配合 colorbar() 显示颜色条,帮助读者理解颜色与高度的对应关系。这些设置能提升图表的可读性和美观度。

❓

Q&A

什么是等高线?

等高线是地形图上高程相等的相邻各点所连成的闭合曲线。

如何使用numpy.meshgrid()生成网格点坐标?

numpy.meshgrid()方法用于生成网格点坐标矩阵,将两个一维数组转换为二维坐标矩阵。

matplotlib如何绘制等高线图?

使用matplotlib.pyplot.contour()方法,传递x、y坐标和高度值即可绘制等高线图。

如何对等高线之间的区域进行颜色填充?

使用matplotlib.pyplot.contourf()方法可以对等高线之间的区域进行颜色填充。

如何给等高线添加标记?

使用matplotlib.pyplot.clabel()方法可以给等高线添加标记,支持自定义字体大小和颜色。

Colormap参数在等高线图中有什么作用?

Colormap参数用于设置等高线的颜色,支持多种渐变色选择。

🏷️

标签

➡️

继续阅读