前言

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

python入门到进阶,爬虫数据分析全套资料分享讲解 (#1)

  • 这么详细的Python matplotlib底层原理浅析_

  • 这么详细的Python matplotlib 绘制图形 还不赶紧收藏_

  • 超详细的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 pltplt.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)*2plt.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)*2cs = 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 绘制等高线图相关推荐

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

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

  2. python matplotlib绘制等高线、等值线图

    @ python matplotlib绘制等高线.等值线图 需求,是技术进步的原动力.先描述需求,并进行需求分析,再进行技术路线选型和编码实现. 一.需求描述 给附件1文件,是三列数据,想要如图这样的 ...

  3. Python matplotlib 绘制量场图

    复习回顾 matplotlib 是基于Python语言的开源项目,pyplot提供一系列绘制2D图形的方法.随着版本的迭代,matplotlib 模块也支持绘制3D图形mplot3d工具包,制作动态图 ...

  4. 超详细的Python matplotlib 绘制动态图

    复习回顾 在matplotlib模块中我们前面学习绘制如折线.柱状.散点.直方图等静态图形.我们都知道在matplotlib模块主要有三层脚本层为用户提供快捷的绘制图形方法,美工层接收到脚本层的命令后 ...

  5. Python matplotlib 绘制散点图 还不收藏起来

    复习回顾 我们在往前几期中对matplotlib模块学习,对常用的反映数据变化的折线图,对比数据类型差异的柱状图和反应数据频率分布情况的直方图. 往前内容快速查看 超详细的Python matplot ...

  6. 这么详细的Python matplotlib 绘制图形 还不赶紧收藏

    前言 我们前面对matplotlib模块底层结构学习,对其pyplot类(脚本层)类提供的绘制折线图.柱状图.饼图.直方图等统计图表的相关方法,列举往期文章如下. 超详细的Python matplot ...

  7. 超详细的Python matplotlib 绘制柱状图

    复习回顾 Python 为数据展示提供了大量优秀的功能包,其中 matplotlib 模块可以方便绘制制作折线图.柱状图.散点图等高质量的数据包. 关于 matplotlib 模块,我们前期已经对ma ...

  8. Python matplotlib绘制雷达图

    Python matplotlib绘制雷达图 本篇文章介绍使用matplotlib绘制雷达图. 雷达图也被称为网络图,蜘蛛图,星图,蜘蛛网图,是一个不规则的多边形.雷达图可以形象地展示相同事物的多维指 ...

  9. Python matplotlib绘制饼图

    Python matplotlib绘制饼图 继前面使用matplotlib绘制折线图.散点图.柱状图和直方图,本篇文章继续介绍使用matplotlib绘制饼图. 一.matplotlib绘制饼图 # ...

最新文章

  1. hadoop 添加删除机器以及设置免密登录
  2. 盘点 15 个好用的 API 接口管理神器
  3. 分布式事务终极解决方案探讨
  4. .net core vs java_VS Code 1.19.3调试.net core 2并始终满足“只能调试64位进程”
  5. 固件分析工具Binwalk
  6. python适合零基础学习吗-Python适合不适合零基础学习呢?老男孩教育
  7. day25 Python四个可以实现自省的函数,反射
  8. hdu 5157(manacher+前缀和+树状数组)
  9. wtp-all-in-one-sdk-R-1.5 使用方法简单说明
  10. Heka:Go编写,来自Mozilla,高效、灵活的插件式数据挖掘工具(转)
  11. 小汤学编程之JavaScript学习day03——对象、Array数组、String字符、Date日期、JSON
  12. 中世纪判断女巫的方法总结
  13. Centos6.8编译安装LNMP环境
  14. 荣耀8获吉尼斯世界纪录!18425米高空直播体验
  15. Educational Codeforces Round 52: D. Three Pieces(记忆化搜索)
  16. Icode编程>>>Python编程>>>1级训练场>>>基础训练【1】
  17. 初学者Apache Solr教程
  18. hdoj1299 还是A+B
  19. 对前端页面的边框设置
  20. 《崩坏3》评测:游戏设计中整体性和利用率分析(下)

热门文章

  1. 微生物组入门必读+宏基因组实操课程=新老司机赶快上车
  2. R语言偏相关或者部分相关性系数计算实战:使用psych包计算(Partial Correlation)偏相关系数、拟合回归模型使用两个回归模型的残差计算偏相关性系数
  3. R语言使用sqldf包按照SQL语法操作dataframe数据(Using SQL statements to manipulate data frames)
  4. R语言ggplot2可视化气泡图:无填充色的气泡图、自定义填充色的气泡图
  5. R语言ggplot2可视化:使用堆叠的条形图(Stacked Barplot)可视化每个数据行(row)的缺失值的情况(Visualizing missing data counts in rows)
  6. R语言使用ggplot2包geom_jitter()函数绘制分组(strip plot,一维散点图)带状图(改变图例位置、移除图例)实战
  7. R语言可视化包ggplot2绘制线性回归模型曲线实战( Linear Regression Line)
  8. 使用二代矫正三代全长转录组数据
  9. 二、进程的状态与转换
  10. 一次搞懂所有排序算法(一)