温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Python+matplotlib怎么实现绘制等高线图

发布时间:2021-12-03 08:27:24 来源:亿速云 阅读:598 作者:iii 栏目:开发技术

本篇内容主要讲解“Python+matplotlib怎么实现绘制等高线图”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python+matplotlib怎么实现绘制等高线图”吧!

    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()

    Python+matplotlib怎么实现绘制等高线图

    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)
    ```

    Python+matplotlib怎么实现绘制等高线图

    传入colors列表

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

    Python+matplotlib怎么实现绘制等高线图

    为等高线图,设置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))

    Python+matplotlib怎么实现绘制等高线图

    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)

    Python+matplotlib怎么实现绘制等高线图

    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)

    Python+matplotlib怎么实现绘制等高线图

    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)

    Python+matplotlib怎么实现绘制等高线图

    到此,相信大家对“Python+matplotlib怎么实现绘制等高线图”有了更深的了解,不妨来实际操作一番吧!这里是亿速云网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

    向AI问一下细节

    免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

    AI