查看原文
其他

Matplotlib 中等高线图(contour)的绘制

Lemon Python数据之道 2022-09-04


前言

在此前的文章里,我们介绍了 Numpy 中 meshgrid 函数的应用,并提到了等高线图的使用。

今天,我们来介绍一下 matplotlib 中等高线图的绘制。

先上图来看一下等高线图的绘制效果,是不是很炫啊。

下面我们来分步骤介绍 matplotlib 中等高线图(contour)的绘制。

数据初始化

  1. import matplotlib

  2. import numpy as np

  3. import matplotlib.cm as cm

  4. import matplotlib.mlab as mlab

  5. import matplotlib.pyplot as plt

  6. %matplotlib inline

  7. # 定义等高线高度函数

  8. def f(x, y):

  9.    return (1 - x / 2 + x ** 5 + y ** 3) * np.exp(- x ** 2 - y ** 2)

  10. # 数据数目

  11. n = 256

  12. # 定义x, y

  13. x = np.linspace(-3, 3, n)

  14. y = np.linspace(-3, 3, n)

  15. # 生成网格数据

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

注:数据初始化过程中用到了 Numpy 的 meshgrid 函数,有兴趣的同学可以了解下这个函数的使用,链接如下:

仅绘制等高线

  1. # 设置图像大小尺寸

  2. plt.figure(figsize=(10,6))

  3. # 填充等高线的颜色, 8是等高线分为几部分

  4. plt.contour(X, Y,f(X, Y), 8,alpha = 0.75, cmap = plt.cm.hot)

结果如下:

仅填充等高区域颜色:

  1. # 设置图像大小尺寸

  2. plt.figure(figsize=(10,6))

  3. # 填充等高区域的颜色, 8是等高线分为几部分

  4. plt.contourf(X, Y,f(X, Y), 8, alpha = 0.75, cmap = plt.cm.hot)

结果如下:

绘制完整的等高线图

  1. # 设置图像大小尺寸

  2. plt.figure(figsize=(10,6))

  3. # 填充等高线的颜色, 8是等高线分为几部分

  4. plt.contourf(X, Y, f(X, Y), 8, alpha = 0.75, cmap = plt.cm.hot)

  5. C = plt.contour(X,Y, f(X,Y), 8, colors='black', linewidth=8)

  6. # 绘制等高线数据

  7. plt.clabel(C, inline = True, fontsize = 10)

  8. # 去除坐标轴

  9. plt.xticks(())

  10. plt.yticks(())

  11. plt.show()

结果如下:

是不是很容易实现啊,赶快动手来试试吧。


 End 


精选文章(点击图片即可查看文章):

机器学习很枯燥,不想继续学了怎么办?或许,这些建议值得一看



公众号导航

ID:PyDataRoad



  • 在微信公众号后台回复数字「 1 」,获取公众号导航内容,包括部分文章源代码,精华文章等。

  • 在微信公众号后台回复「 微信群 」,和小伙伴们一起入群。



您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存