Numpy中 meshgrid 和等高线绘图contour/contourf的搭配使用

本文介绍了如何在Numpy中使用`np.meshgrid()`创建网格坐标,并结合Matplotlib的`contour`和`contourf`函数绘制等高线图。`contour`仅绘制等高线边界,而`contourf`则会填充等高线间的区域。此外,文章还讨论了参数设置,如`levels`、`colors`和`cmap`对等高线图的影响。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Numpy中 meshgrid() 和等高线绘图contour()/contourf()的搭配使用

np.meshgrid()

接收参数np.meshgrid(x1,x2,x3...)

x1,x2,x3…为代表网格坐标的一维数组
网格坐标(以最为常见的二维网格为例):在一个二维平面中,设横轴坐标是1,2,3,过这几个点做平行于纵轴的直线,
纵轴坐标为2,3,4,过这几个点做平行于横轴的直线,则各条直线相交点的坐标即为网络坐标(示意图如下)
在这里插入图片描述
图中红色星号点即为网络坐标点
下面我们通过meshgrid()方法看看得到了什么
在这里插入图片描述
横坐标x和纵坐标y经过meshgrid(x,y)后返回了所有直线相交的网络坐标点的横坐标xx和纵坐标yy,xx数组和yy数组对应位置组成网络格点的坐标(1,2)(2,2)(3,2)(1,3)(2,3)等等,注意:meshgrid返回的xxyy数组的大小总是一致的(废话,不一致怎么能有对应坐标,哈哈)

matplotlib.pyplot.contour

两者均为等高线绘制方法:等高线(如下图所示图片来源百度百科),地理中的概念,一般指两处地势高度相同,将地势高度相同的点用光滑线相连接就得到了等高线,在这里一般指经过函数计算后结果相同的点连接起来构成等高线
在这里插入图片描述

两者的区别:contour仅仅绘制出等高线边界处的轮廓线,而contourf会对两个相邻轮廓线之间即等高区域进行颜色填充

接收参数contour(x,y,z,levels,alpha,colors,cmap)

注:这里我只选常用到的参数进行说明,更详细参数设置点击这里
z(N,M)数组
x,y可以是二维数组,其大小必须与z一致;也可以是一维数组,此时必须满足len(x)=N,len(y)=M,可以将其看做输入了一维横坐标和一维纵坐标,然后contour()内部完成了meshgrid()过程
x,y也可以不输入,此时默认为x=range(N),y=range(M),即转换为上面的一维横纵坐标数组
levels可以是int或类数组,int时表示绘制等高线的个数,等高线之间的间距按个数自动生成
类数组时,表示等高线的具体位置

levels为int时:

import matplotlib.pyplot as plt
x = np.array([1,2,3])
y 
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值