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

          前言

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

          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 绘制等高线图的资料请关注www.887551.com其它相关文章!