文章目录

  • 等高线图:
  • contour
  • 示例说明:
  • 扩展应用
    • 颜色填充
    • 绘制等高线值
    • 轮廓线颜色和样式
  • 总结

等高线图:

等高线也称“水平图”)指的是地形图上高程相等的相邻各点所连成的闭合曲线。把地面上海拔高度相同的点连成的闭合曲线,并垂直投影到一个水平面上,并按比例缩绘在图纸上,就得到等高线。
等高线也是一种在二维平面上显示 3D 图像的方法。等高线有时也被称为 “Z 切片”,如果您想要查看因变量 Z 与自变量 X、Y 之间的函数图像变化(即 Z=f(X,Y)),那么采用等高线图最为直观

contour

  1. 函数定义:
matplotlib.pyplot.contour(*args, data=None, **kwargs)

通用格式: matplotlib.pyplot.contour([X, Y,] Z, [levels], **kwargs)

  1. 常用参数:
  • X:

  • Y: X, Y类似数组,可选参数。为参数Z中各值的x和y坐标

  • Z:绘制轮廓的高度值;

  • levels:确定轮廓线/区域的数量和位置;

  • colors:等高线的颜色,颜色字符串或颜色序列

  • cmap: 等高线的颜色,字符串或者 Colormap

  • alpha: 设置透明色,浮点,默认值1,介于0(透明)和1(不透明)之间;

  • origin:通过指定 Z[0,0] 的位置来确定 Z 的方向和确切位置,仅当未指定 X, Y 时才有意义
    None :Z[0,0] 位于左下角的 X=0, Y=0 处
    ‘lower’ :Z [0, 0] 位于左下角的 X = 0.5, Y = 0.5 处
    ‘upper’ :Z[0,0] 位于左上角的 X=N+0.5, Y=0.5 处
    ‘image’ :使用 rcParams[“image.origin”] = ‘upper’ 的值

  • antialiased: 是否启用抗锯齿渲染,默认 True

  • linewidths: 等高线的线宽,如果是数字,则所有等高线都将使用此线宽。如果是序列,则将按指定的顺序以升序打印线宽。默认为 rcParams[“lines.linewidth”] = 1.5

  • linestyles:等高线的样式,如果线条颜色为单色,则负等高线默认为虚线

contour的详细定义:
https://matplotlib.org/stable/api/_as_gen/matplotlib.pyplot.contour.html#matplotlib.pyplot.contour

示例说明:

通过产生一组随机数进行示例说明

import numpy as np
import matplotlib.pyplot as plt
"""
np.linspace()在指定的大间隔内[-4.0,4.0],返回固定间隔100个数据
"""
x = np.linspace(-4.0, 4.0, 100)
y = np.linspace(-4.0, 4.0, 100)"""
np.meshgrid()两个坐标轴上的点在平面上画格,产生一个以向量x为行,向量y为列的矩
"""
X, Y = np.meshgrid(x, y)#定义Z与X,Y之间的关系,即原方程x²+y²=r²
Z = np.sqrt(X**2 + Y**2)fig,ax = plt.subplots(figsize=(6,6))
#画等高线
plt.contour(X,Y,Z)
plt.show()

运行结果:

从图中可以很明显看出这个等高线是一个嵌套的同心圆,同一圆上的为相同Z值。

扩展应用

颜色填充

通过contourf函数进行色彩填充

matplotlib.pyplot.contourf(*args, data=None, **kwargs)

https://matplotlib.org/stable/api/_as_gen/matplotlib.pyplot.contourf.html

import numpy as np
import matplotlib.pyplot as plt
import matplotlib"""
font:设置中文
"""
matplotlib.rcParams['font.family'] = ['Heiti TC']
"""
np.linspace()在指定的大间隔内[-4.0,4.0],返回固定间隔100个数据
"""
x = np.linspace(-4.0, 4.0, 100)
y = np.linspace(-4.0, 4.0, 100)"""
np.meshgrid()两个坐标轴上的点在平面上画格,产生一个以向量x为行,向量y为列的矩
"""
X, Y = np.meshgrid(x, y)#定义Z与X,Y之间的关系,即原方程x²+y²=r²
Z = np.sqrt(X**2 + Y**2)fig,axes=plt.subplots(1,2,figsize=(16,9))axes[0].contour(X, Y,Z, alpha = 0.75, cmap = plt.cm.hot)
axes[0].set_title('等高线')
axes[1].contourf(X, Y, Z,cmap = plt.cm.hot)
axes[1].set_title('等高线图填充颜色')
fig.colorbar(cp)
plt.show()

运行结果:

绘制等高线值

matplotlib.pyplot.clabel() 方法用于给等高线添加标记。

下面以双峰线f(x,y)=e^(-(x - 2) ^2 - (y - 2) ^2))+2 * e^(-x ^2 - y ^2),看看因变量 Z 与自变量 X、Y 之间的函数图像变化,下图为双峰的三维形状。

import numpy as np
import matplotlib.pyplot as plt
import matplotlib"""
font:设置中文
"""
matplotlib.rcParams['font.family'] = ['Heiti TC']
"""
np.linspace()在指定的大间隔内[-2,4],返回固定间隔1000个数据
"""
x = np.linspace(-2, 4, 1000)
y = np.linspace(-2, 4, 1000)
"""
np.meshgrid()两个坐标轴上的点在平面上画格,产生一个以向量x为行,向量y为列的矩
"""
X, Y = np.meshgrid(x, y)
#双峰函数
Z = np.exp(-(X - 2) ** 2 - (Y - 2) ** 2) + 1.2 * np.exp(-X ** 2 - Y ** 2)fig,ax=plt.subplots(figsize=(6,6))
C = ax.contour(X, Y, Z, cmap=matplotlib.cm.jet)
plt.clabel(C)
plt.title('等高线图设置等高线值')
plt.show()

运行结果如下:

从上图可以明显看出等高线是二维平面上显示 3D 图像,即从三维坐标系中延Z轴在X-Y平面的投影。

轮廓线颜色和样式

matplotlib.pyplot.contour() 方法中,

  • colors 参数即可为等高线轮廓设置颜色,可以是单色,也可以是一个颜色列表,
  • linestyles 参数可以设置轮廓线样式,注意,如果线条颜色为单色,则负等高线(高度值为负)默认为虚线。
import numpy as np
import matplotlib.pyplot as plt
import matplotlib"""
font:设置中文
"""
matplotlib.rcParams['font.family'] = ['Heiti TC']
"""
np.linspace()在指定的大间隔内[-2,4],返回固定间隔1000个数据
"""
x = np.linspace(-2, 4, 1000)
y = np.linspace(-2, 4, 1000)
"""
np.meshgrid()两个坐标轴上的点在平面上画格,产生一个以向量x为行,向量y为列的矩
"""
X, Y = np.meshgrid(x, y)
#双峰函数
Z = np.exp(-(X - 2) ** 2 - (Y - 2) ** 2) + 1.2 * np.exp(-X ** 2 - Y ** 2)fig,ax=plt.subplots(figsize=(6,6))
colors = ['k', 'r', 'g', 'b']
# 绘制等高线图,8 个数据间隔,颜色为黑色,线条样式为 --
C = ax.contour(X, Y, Z,8, colors=colors, linestyles='--')
# 添加标记,标记处不显示轮廓线,颜色为黑红绿蓝四种,保留两位小数
plt.clabel(C, inline=True, colors=colors, fmt='%1.2f')
plt.title('等高线图设置颜色/样式示例')
plt.xlabel('x')
plt.ylabel('y')
plt.show()

运行结果如下:

总结

等高线的通常的使用场景:

  • 等高线图常用在展示某地地形情况

  • 等高线图也可以计算当地山地高低情况

  • 等高线图常用于地质、地理勘察绘制而成

  • 等高线图也可以用于绘制圆形、椭圆形等数学公式展示

matplotlib之等高线图相关推荐

  1. Python matplotlib 绘制等高线图

    前言 我们在往期对matplotlib.pyplot()方法学习,到现在我们已经会绘制折线图.柱状图.散点等常规的图表啦(往期的内容如下,大家可以方便查看往期内容) python入门到进阶,爬虫数据分 ...

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

    Matplotlib 中等高线图(contour)的绘制 今天学习了matplotlib中的高线图的绘制,下面分享一下Matplotlib 中等高线图(contour)的绘制的步骤: 数据初始化 # ...

  3. Matplotlib contours 等高线图

    本节讲解如何用matplotlib生成等高线图.今天的结果如下图所示: 画等高线 数据集即三维点 (x,y) 和对应的高度值,共有256个点.高度值使用一个 height function f(x,y ...

  4. p12..Matplotlib:Contours等高线图

    本节讲解如何用matplotlib生成等高线图.今天的结果如下图所示: 画等高线 数据集即三维点 (x,y) 和对应的高度值,共有256个点.高度值使用一个 height function f(x,y ...

  5. Matplotlib(7)——等高线图、热力图

    等高线图 plt.contour()  函数用来画线 plt.contourf()函数用来填充 实验一:单独使用plt.contour()函数画等高线的效果. import numpy as np i ...

  6. python等高线图平滑_用Matplotlib平滑等高线图中的数据

    平滑数据的一个简单方法是使用moving average算法.移动平均的一种简单形式是计算某一位置相邻测量值的平均值.例如,在一维测量序列a[1:N]中,a[N]处的移动平均值可以计算为a[N]=(a ...

  7. 9.matplotlib contours等高线图

    import matplotlib.pyplot as plt import numpy as np def f(x, y): return (1-x/2+x**5+y**3)*np.exp(-x** ...

  8. 3.3 Matplotlib Contours 等高线图

    本文内容是根据 莫烦Python 网站的视频整理的笔记,笔记中对代码的注释更加清晰明了, 同时根据所有笔记还整理了精简版的思维导图, 可在此专栏查看, 想观看视频可直接去他的网站, 源文件已经上传到主 ...

  9. 老咸鱼今天告诉你用Python matplotlib 各种图绘制流线图,难怪老板放纵他

    复习回顾 在Python关于绘图,Mlab提供开源的matplotlib模块,不仅可以绘制折线图.柱状图.散点图等常规图外,还支持绘制量场图.频谱图.提琴图.箱型图等特殊图,例举往期文章可前往查看详情 ...

  10. 不愧是摸鱼高手Python matplotlib 绘制频谱图都会,能怪老板不管

    复习回顾 matplotlib 是Python专门用来绘制渲染的模块,其底层主要分为脚本层.美工层和后端.脚本层为我们提供常见图形绘制如折线.柱状.直方.饼图.以往文章 这么详细的Python mat ...

最新文章

  1. java 方法里面定义接口_java – 当接口A在其方法签名中定义接口B时
  2. make 学习体会(一)
  3. java 开票金额拆分_关于开票尾差拆分凑整的算法问题
  4. 呼叫中心如何规划好工作习惯
  5. Discuz! 在线中文分词、关键词提取服务
  6. kubectl 命令管理(1)
  7. mediumtext 长度_InnoDB表行长度超限问题的处理和思考
  8. XSS(跨站脚本攻击)攻击与防御
  9. 算法基础系列之三:螺旋形矩阵
  10. 文本数据增强+NER
  11. 解决QT5中文显示出现乱码
  12. Quick BI功能篇之(一):20分钟入门
  13. selenium 各浏览器driver下载地址
  14. 9种免费在线PDF编辑网站
  15. 【Unity Shaders】ShadowGun系列之二——雾和体积光
  16. MiCT: Mixed 3D/2D Convolutional Tube for Human Action Recognition论文笔记
  17. 重置计算机后无法开机,win10重置此电脑失败怎么办_win10重置此电脑失败无法开机修复方法...
  18. 截断二进制指数退避算法c++实现
  19. xcode更新一直失败的解决办法
  20. ios申请企业开发者账号的代理_2020年苹果ios企业开发者账号的申请流程攻略(最专业详细)...

热门文章

  1. 安装Mendeley后Word中没有出现对应的Mendeley插件
  2. mediapipe系列之一脸部特征点标记
  3. 新媒体运营的基本方法——四步法让你成为新媒体业内大佬
  4. 如何利用计算机打印较大的字,Word打印技巧:打印大字-word技巧-电脑技巧收藏家...
  5. Linux wipe工具
  6. python爬取网站视频保存到本地
  7. 燕山大学教务系统官网计算机学院,燕山大学教务处_燕山大学教务信息网_燕山大学教务管理系统入口...
  8. 什么是十六进制法_什么是十六进制-十六进制详解-嗨客网
  9. 刨根究底字符编码之二——关键术语解释(下)
  10. ff14优雷卡补正什么意思_禁地优雷卡 | 新大陆见闻录 - 《最终幻想14》萌新指导手册...