python画函数等高线_【python碎碎念】如何画等高线

上回介绍 matplotlib 这个关键的库是画折线图的时候Mike:【python碎碎念】matplotlib 超好用的画图库​zhuanlan.zhihu.com

今天我们还是用 matplotlib 这个库讲一讲等高线。等高线函数位于 plt (matplotlib.pyplot) 下的 contour 或 contourf,f 代表 fill,即,有填充。

首先,当你绘制等高线的时候,你需要思考这几件事情。

1、你需要哪些基本元素作为输入?

这个简单,我们需要有坐标 (x,y) 的绘制范围,我们需要有高度 z = f(x,y) 这个函数。

2、在绘图的时候,计算机需要知道什么样的信息?

我们需要告诉计算机,当海拔到了哪些值的时候,我们绘制等高线。

好,很简单。当你想清楚这几个问题的时候,我们就可以开始了。

首先,这几个库你需要导入。

import numpy as np

import matplotlib.pyplot as plt

import matplotlib as mpl

我个人认为,numpy 和 matplotlib 这两个库,你需要非常熟练。你不应该在网上查看别人的代码,才能知道这几句话怎么写。

def height(x,y):

return np.exp(-(x-2)**2-(y-2)**2) + 1.2*np.exp(-x**2-y**2)

相信对数学敏感的朋友一下子就能看出来,这是一个双峰等高线。一个局部最优点,一个全局最优点。

x = np.arange(-1.5,3.5,0.1)

y = np.arange(-1.5,3.5,0.1)

X,Y = np.meshgrid(x,y)

Z = height(X,Y)

接下来我们要绘制网格了,请注意小写的 x,y 是一维向量,而大写的 X,Y 已经变成矩阵了。我们通过 print 函数直观感受一下感受 X 到底是什么。

接下来,我们需要指定等高线在什么样的 value 情况下出现。请注意,由于等高线是实数值,我们不能直接用 range,而是要用 np.arange

N = np.arange(-0.2, 1.5, 0.1)

好的,现在万事俱备,我们开始画图

CS = plt.contourf(Z,N,linewidth=2,cmap=mpl.cm.jet)

plt.colorbar(CS)

plt.show()

请注意你可以把 mpl.cm.jet 理解成一种配色方式,常用的有 jet 和 rainbow。

最终效果如下,很简单。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值