Python+matplotlib实现绘制等高线图示例详解

目录
  • 前言
  • 1. 等高线图概述
    • 什么是等高线图?
    • 等高线图常用场景
    • 绘制等高线图步骤
    • 案例展示
  • 2. 等高线图属性
    • 设置等高线颜色
    • 设置等高线透明度
    • 设置等高线颜色级别
    • 设置等高线宽度
    • 设置等高线样式
  • 3. 显示轮廓标签
  • 4. 填充颜色
  • 5. 添加颜色条说明
  • 总结

前言

我们在往期对matplotlib.pyplot()方法学习,到现在我们已经会绘制折线图、柱状图、散点等常规的图表啦(往期的内容如下,大家可以方便查看往期内容)

Python matplotlib底层原理解析

Python利用 matplotlib 绘制直方图

Python用 matplotlib 绘制柱状图

python 用matplotlib绘制折线图详情

在matplotlib.pyplot 中除了可以绘制常规图表如折线、柱状、散点等,还可以绘制常用在地理上的平面展示地型的等高线图

本期,我们将详细学习matplotlib 绘制等高线图相关属性的学习,let's go~

1. 等高线图概述

什么是等高线图?

  • 等高线图又称为水平图,通过2D形式展示3D图像的图表
  • 等高线图又称为等高地线图,将地表高度相同的点连成一个环线展示到平面曲线上
  • 等高线图又称为Z切片图,因变量Z与自变量X,Y变化而变化
  • 等高线图可以分为首曲线、计曲线、间曲线与助曲线

等高线图常用场景

  • 等高线图常用在展示某地地形情况
  • 等高线图也可以计算当地山地高低情况
  • 等高线图常用于地质、地理勘察绘制而成
  • 等高线图也可以用于绘制圆形、椭圆形等数学公式展示

绘制等高线图步骤

  1. 导入matplotlib.pyplot模块
  2. 准备数据,可以使用numpy/pandas整理数据
  3. 调用pyplot.contour()或者pyplot.contourf()绘制等高线

案例展示

等高线图绘制需要借助很多高中所学的三角函数、指数函数等公式,我们本期案例使用等高线方法汇总圆

案例数据准备

np.arrage()准备一系列连续的数据

np.meshgrid()将数据转换成矩阵

import numpy as np
# 定义一组连续的数据

x_value = np.arange(-5,5,0.1)
y_value = np.arange(-5,5,0.1)

# 转换成矩阵数据
x,y = np.meshgrid(x_value,y_value)

绘制等高线

import matplotlib.pyplot as plt
plt.contour(x,y,z)

plt.title("Display Contour")
plt.xlabel("x(m)")
plt.ylabel("y(m)")

plt.show()

plt.show()

2. 等高线图属性

设置等高线颜色

关键字:colors

取值范围:

  • 表示颜色的英文单词:如红色"red"
  • 表示颜色单词的简称如:红色"r",黄色"y"
  • RGB格式:十六进制格式如"#88c999";(r,g,b)元组形式
  • 也可以传入颜色列表

设置等高线透明度

关键字:alpha

默认为1

取值范围为:0~1

设置等高线颜色级别

关键字:cmap

colors和cmap两个关键字不能同时提供

取值为:注册的颜色表明

  • 形式如:"颜色表_r"
  • 常用的有:'Accent', 'Accent_r', 'Blues', 'Blues_r', 'BrBG', 'BrBG_r', 'BuGn', 'BuGn_r', 'BuPu', 'BuPu_r', 'CMRmap', 'CMRmap_r', 'Dark2', 'Dark2_r', 'GnBu', 'GnBu_r', 'Greens'

设置等高线宽度

关键字:linewidths

默认为等高线宽度为1.5

取值可以float类型或者列表

设置等高线样式

关键字:linestyles

默认值为:solid

取值可选:{None, 'solid', 'dashed', 'dashdot', 'dotted'}

linestyles为None且线条为单色时,负轮廓的线条会设置成dashed

我们对上一节的等高线图添加一些属性

线条为红色,线条宽度逐渐增大,线条样式为dashed,透明度设置为0.5

```python
plt.contour(x,y,z,colors="r",
linestyles="dashed",
linewidths=np.arange(0.5,4,0.5),alpha=0.5)
```

传入colors列表

plt.contour(x,y,z,
colors=('r','green','blue',(1,1,0),"#afeeee","0.5"),
linewidths=np.arange(0.5,4,0.5))

为等高线图,设置cmap为红色系

z = np.exp(-x**2-y**2)
z1 = np.exp(-(x-1)**2-(y-1)**2)
Z = (z-z1)*2

plt.contour(x,y,Z,
cmap='afmhot_r',
linewidths=np.arange(0.5,4,0.5))

3. 显示轮廓标签

我们查看等高线图时,轮廓标签会辅助我们更好的查看图表。添加轮廓标签,我们需要借助clabe

  • pyplot.contour()绘制等高线方法,会返回QuadContourset
  • QuadContourset 包含level列表数据
  • 使用pyplot.clabel()接受level列表数据标注在等高线上
x_value = np.arange(-3,3,0.025)
y_value = np.arange(-3,3,0.025)

x,y = np.meshgrid(x_value,y_value)

z = (1-x**2+y**5)*np.exp(-x**2-y**2)

cs = plt.contour(x,y,z,cmap="Blues_r",linewidths=np.arange(0.5,4,0.5))

plt.clabel(cs,fontsize=9,inline=True)

4. 填充颜色

通常在等高线图中,不同区域填充不一样的颜色,帮助我们查看图表时更好地理解

使用pyplot.contourf()对比同区域轮廓进行填充颜色

z = (1-x**2+y**5)*np.exp(-x**2-y**2)

cs = plt.contour(x,y,z,10,colors="b",linewidths=0.5)

plt.clabel(cs,fontsize=12,inline=True)

plt.contourf(x,y,z,10,cmap="Blues_r",alpha=0.75)

5. 添加颜色条说明

我们可以借助pyplot.colorbar()方法来添加颜色条说明

z = (x**2+y**5)*np.exp(-x**2-y**2)
z1 = np.exp(-(x-1)**2-(y-1)**2)
Z = (z-z1)*2

cs = plt.contour(x,y,Z,10,colors="black",linewidths=0.5)

plt.clabel(cs,fontsize=12,inline=True)

plt.contourf(x,y,Z,10,cmap="afmhot_r",alpha=0.5)

plt.colorbar(shrink=0.8)

总结

本期对matplotlib.pyplot 绘制等高线方法contour和contourf相关属性的学习。在绘制等高线图时,我们需要对三角函数、指数函数、正余弦函数等知识有一点了解,才能绘制出想要的图表 

以上就是Python+matplotlib实现绘制等高线图示例详解的详细内容,更多关于Python matplotlib 绘制等高线图的资料请关注我们其它相关文章!

(0)

相关推荐

  • Python利用 matplotlib 绘制直方图

    目录 1. 直方图概述 1.1什么是直方图? 1.2直方图使用场景 1.3直方图绘制步骤 1.4案例展示 2. 直方图属性 2.1设置颜色 2.2设置长条形数目 2.3设置透明度 2.4设置样式 3. 添加折线直方图 4. 堆叠直方图 5. 不等距直方图 6. 多类直方图 复习回顾: 经过前面对 matplotlib 模块从底层架构.基本绘制步骤等学习,我们已经学习了折线图.柱状图的绘制方法. matplotlib 模块基础:对matplotlib 模块常用方法进行学习 matplotlib 模

  • Python matplotlib超详细教程实现图形绘制

    目录 前言 1. matplotlib.patches概述 2. 绘制图形方法 3. 绘制图形步骤 4. 绘制图形属性 设置透明度 设置颜色 5. 小试牛刀 前言 我们前面对matplotlib模块底层结构学习,对其pyplot类(脚本层)类提供的绘制折线图.柱状图.饼图.直方图等统计图表的相关方法,列举往期文章如下. Python利用 matplotlib 绘制直方图 Python用 matplotlib 绘制柱状图 python 用matplotlib绘制折线图详情 Python利用matp

  • Python用 matplotlib 绘制柱状图

    目录 1. 柱状图概述 1.1什么是柱状图 1.2柱状图使用场景 1.3柱状图绘制步骤 1.3案例展示 2. 柱状图属性 2.1柱状体颜色填充 2.2状描边设置 2.3状体边框宽度 2.4刻度标签 3. 堆叠柱状图 4. 并列柱状图 5. 水平柱状图 6. 添加折线柱状图 7. 正负柱状图 复习回顾: Python 为数据展示提供了大量优秀的功能包,其中 matplotlib 模块可以方便绘制制作折线图.柱状图.散点图等高质量的数据包. 关于 matplotlib 模块,我们前期已经对matpl

  • Python matplotlib如何绘制各种流线图

    目录 前言 流线图概述 什么是流线图? 流线图应用场景 获取流线图方法 流线图属性 设置流线图密度 设置流线宽度 设置流线颜色 设置流线缩放 设置流线颜色系 绘制流线图步骤 小试牛刀 总结 前言 在Python关于绘图,Mlab提供开源的matplotlib模块,不仅可以绘制折线图.柱状图.散点图等常规图外,还支持绘制量场图.频谱图.提琴图.箱型图等特殊图,例举往期文章可前往查看详情. 我们日常生活中经常会关注天气预报,在换季的时候,播报员会讲解气流流动情况.在天气预报过程中,气象专家们会根据流

  • Python利用matplotlib实现饼图绘制

    目录 前言 1. 等高线图概述 什么是饼图? 饼图常用场景 绘制等饼图步骤 案例展示 2. 饼图属性 设置饼图的颜色 设置标签 设置突出部分 设置填入百分比数值 饼图旋转 设置阴影 3. 调整饼图的大小 4. 添加图例 5. 镂空饼图 总结 前言 众所周知,matplotlib.pyplot 提供绘制不同表格绘制方法,如使用plot()方法绘制折线,bar()绘制柱 在matplotlib.pyplot 中还有一种图表用于直观表示占比情况的饼图,在matplotlib官网上也列举出非常多关于饼图

  • Python+matplotlib实现绘制等高线图示例详解

    目录 前言 1. 等高线图概述 什么是等高线图? 等高线图常用场景 绘制等高线图步骤 案例展示 2. 等高线图属性 设置等高线颜色 设置等高线透明度 设置等高线颜色级别 设置等高线宽度 设置等高线样式 3. 显示轮廓标签 4. 填充颜色 5. 添加颜色条说明 总结 前言 我们在往期对matplotlib.pyplot()方法学习,到现在我们已经会绘制折线图.柱状图.散点等常规的图表啦(往期的内容如下,大家可以方便查看往期内容) Python matplotlib底层原理解析 Python利用 m

  • Python Matplotlib数据可视化模块使用详解

    目录 前言 1 matplotlib 开发环境搭建 2 绘制基础 2.1 绘制直线 2.2 绘制折线 2.3 设置标签文字和线条粗细 2.4 绘制一元二次方程的曲线 y=x^2 2.5 绘制正弦曲线和余弦曲线 3 绘制散点图 4 绘制柱状图 5 绘制饼状图 6 绘制直方图 7 绘制等高线图 8 绘制三维图 总结 本文主要介绍python 数据可视化模块 Matplotlib,并试图对其进行一个详尽的介绍. 通过阅读本文,你可以: 了解什么是 Matplotlib 掌握如何用 Matplotlib

  • python matplotlib 绘图 和 dpi对应关系详解

    我就废话不多说啦! dpi=1 600×400 dpi=2 1200×800 dpi=3 1800×1200 ........ dpi=21 (21×600)×(21×400) ---> 12600×8400 示例代码: ............... ............... plt_temp=y_axis plt_temp.resize(len(y_axis) , 1) plt_arr=np.concatenate((plt_arr,plt_temp ), axis=1) #print

  • Python OpenCV实现图形检测示例详解

    目录 1. 轮廓识别与描绘 1.1 cv2.findComtours()方法 1.2 cv2.drawContours() 方法 1.3 代码示例 2. 轮廓拟合 2.1 矩形包围框拟合 - cv2.boundingRect() 2.2圆形包围框拟合 - cv2.minEnclosingCircle() 3. 凸包 绘制 4. Canny边缘检测 - cv2.Canny() 4.1 cv2.Canny() 用法简介 4.2 代码示例 5. 霍夫变换 5.1 概述 5.2 cv2.HoughLin

  • python实现PCA降维的示例详解

    概述 本文主要介绍一种降维方法,PCA(Principal Component Analysis,主成分分析).降维致力于解决三类问题. 1. 降维可以缓解维度灾难问题: 2. 降维可以在压缩数据的同时让信息损失最小化: 3. 理解几百个维度的数据结构很困难,两三个维度的数据通过可视化更容易理解. PCA简介 在理解特征提取与处理时,涉及高维特征向量的问题往往容易陷入维度灾难.随着数据集维度的增加,算法学习需要的样本数量呈指数级增加.有些应用中,遇到这样的大数据是非常不利的,而且从大数据集中学习

  • Python线性点运算数字图像处理示例详解

    目录 点运算 定义 分类 线性点运算 分段线性点运算 非线性点运算 对数变换 幂次变换 点运算 定义 分类 线性点运算 例子: 分段线性点运算 非线性点运算 对数变换 幂次变换 1. 点运算是否会改变图像内像素点之间的空间位置关系? 点运算是一种像素的逐点运算,它与相邻的像素之间没有运算关系,点运算不会改变图像内像素点之间的空间位置关系. 2. 对图像灰度的拉伸,非线性拉伸与分段线性拉伸的区别? 非线性拉伸不是通过在不同灰度值区间选择不同的线性方程来实现对不同灰度值区间的扩展与压缩,而是在整个灰

  • Python面向对象编程repr方法示例详解

    目录 为什么要讲 __repr__ 重写 __repr__ 方法 str() 和 repr() 的区别 为什么要讲 __repr__ 在 Python 中,直接 print 一个实例对象,默认是输出这个对象由哪个类创建的对象,以及在内存中的地址(十六进制表示) 假设在开发调试过程中,希望使用 print 实例对象时,输出自定义内容,就可以用 __repr__ 方法了 或者通过 repr() 调用对象也会返回 __repr__ 方法返回的值 是不是似曾相识....没错..和 __str__ 一样的

  • python函数传参意义示例详解

    目录 C++这样的语言用多了之后,在Python函数传递参数的时候,经常会遇到一个问题,我要传递一个引用怎么办? 比如我们想要传一个x到函数中做个运算改变x的值: def change(y): y += 1 x = 1 print ("before change:", x) change(x) print ("after change: ", x) 得到的结果是 before change: 1 after change:  1 完全没用~~~这是怎么回事? 我来说

  • python模块shutil函数应用示例详解教程

    目录 本文大纲 知识串讲 1)模块导入 2)复制文件 3)复制文件夹 4)移动文件或文件夹 5)删除文件夹(慎用) 6)创建和解压压缩包 本文大纲 os模块是Python标准库中一个重要的模块,里面提供了对目录和文件的一般常用操作.而Python另外一个标准库--shutil库,它作为os模块的补充,提供了复制.移动.删除.压缩.解压等操作,这些 os 模块中一般是没有提供的.但是需要注意的是:shutil 模块对压缩包的处理是调用 ZipFile 和 TarFile这两个模块来进行的. 知识串

  • Python实现连接dr校园网示例详解

    目录 背景 分析 实现 背景 在校园里认证上网很麻烦需要web输入账号密码有时还会忘记web地址此时就需要一个人或者程序帮我们实现,这时我想到用python制作这个程序(初学者python代码不规范) 分析 需要分析web登录网址的浏览器头发现是get方法这就简单了,再次分析get请求发现有user_account字段,user_password字段还有ip字段mac字段这时我们的思路就来了使用curl命令直接把这个代码放到终端里运行发现是可以的 curl "http://学校认证服务器ip:8

随机推荐