Python matplotlib如何绘制各种流线图

 更新时间:2021年12月01日 16:58:32   作者:编程简单学  
在Python中不仅可以绘制折线图、柱状图、散点图等常规图外,还支持绘制量场图、频谱图、提琴图、箱型图等特殊图。本文将主要介绍如何绘制流线图,需要的朋友可以参考一下

前言

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

我们日常生活中经常会关注天气预报,在换季的时候,播报员会讲解气流流动情况。在天气预报过程中,气象专家们会根据流线图绘制的气流情况,来预测当地的天气情况。

本期,我们将学习matplotlib.pyplot.streamplot()方法相关属性的学习,let's go~

流线图概述

什么是流线图?

  • 流线图通过流线和箭头的组合绘制,来表示某一时段流线的运行情况、
  • 流线图上的箭头表示流向,流线上的形状表示流强度
  • 流线图可分为气流图、等风速线、变高图等
  • 流线图中的流线可以合并、汇合、分交,但不能交叉

流线图应用场景

流线图通常用于气象学中研究风速、气流、洋流的流向情况

流程图是风场分析的重要图表,流线的稀密度与风速大小成正比

获取流线图方法

import matplotlib.pyplot as plt 
plt.streamplot(x,y,u,v)

流线图属性

设置流线图密度

关键字:density

默认值为:1

取值类型为:浮点型或者元组

控制流线图密度,当density=1时,网格会被划分为30*30网格

对于设置每个方向上密度,可以使用元组(x,y)

设置流线宽度

关键字:linewidth

取值类型为:浮点型或者二维数组

使用二维数组,可以改变流线在网格上的线宽

阵列的形状必须要与u、v相同

设置流线颜色

关键字:color

取值可为:

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

当使用cmap时,则需要color设置为二维数组,否则无效

设置流线缩放

关键字:norm

默认为将流线拉伸到(0,1)

仅在颜色为数组时使用

设置流线颜色系

关键字: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'

绘制流线图步骤

导入matplotlib.pyplot类

import matplotlib.pyplot as plt

调用numpy库arange()、random()、randint()等准备x,y,u,v数据

  • x,y:一维数组/二维数组
  • u,v:二维数组
  • 当为二维数组,可以通过np.meshgrid(x,y),np.mgrid()创建
x = np.arange(1,10)
y = np.arange(1,10)
 
u,v = np.meshgrid(np.sin(x),np.sin(y))

调用pyplot.streamplot()绘制流线图

plt.streamplot(x,y,u,v,density=[0.5,1])

调用pyplot.show()渲染显示出流线图

plt.show()

设置linewidth、color、cmap属性绘制流线图

plt.streamplot(x,y,u,v,density=[0.5,1],color=u,cmap="Accent_r",linewidth=3)

小试牛刀

我们学习了关于绘制流线图相关属性,我们来实操一下控制流线的起点数据

  • 调用np.mgrid[]定义x,y二维数据
  • 调用pyplot.streamplot()方法绘制流线图
  • 调用pyplot.plot()方法绘制折线图,使用marker属性标记
y,x= np.mgrid[-3:3:100j, -3:3:100j]
u = -1-x**2+y
v = 1+x-y**2
 
seed_points = np.array([[-2, -1, 0, 1, 2, -1], [-2, -1, 0, 1, 2, 2]])
plt.streamplot(x,y,u,v,density=0.6,color=u,cmap="autumn",linewidth=1,start_points=seed_points.T)
plt.plot(seed_points[0],seed_points[1],"^",color="b")
 
plt.show()

总结

本期,我们对matplotlib.pyplot提供streamplot()方法绘制流线图相关属性的学习。流线图通常使用在气象学中,研究气流变化情况。 

以上就是Python matplotlib如何绘制各种流线图的详细内容,更多关于Python matplotlib绘制流线图的资料请关注脚本之家其它相关文章!

相关文章

  • 分析运行中的 Python 进程详细解析

    分析运行中的 Python 进程详细解析

    这篇文章主要介绍了分析运行中的 Python 进程,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-06-06
  • Django中从mysql数据库中获取数据传到echarts方式

    Django中从mysql数据库中获取数据传到echarts方式

    这篇文章主要介绍了Django中从mysql数据库中获取数据传到echarts方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-04-04
  • python http接口自动化脚本详解

    python http接口自动化脚本详解

    这篇文章主要为大家详细介绍了python http接口自动化脚本,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-01-01
  • 解决python将xml格式文件转换成txt文件的问题(xml.etree方法)

    解决python将xml格式文件转换成txt文件的问题(xml.etree方法)

    从数据分析的角度去看xml格式的数据集,具有简单性,结构和内容分离、可扩展性的特征,今天通过本文给大家分享python将xml格式文件转换成txt文件的问题及解决方法(xml.etree方法),感兴趣的朋友一起看看吧
    2021-09-09
  • Django用内置方法实现简单搜索功能的方法

    Django用内置方法实现简单搜索功能的方法

    这篇文章主要介绍了Django用内置方法实现简单搜索功能的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-12-12
  • 深入了解python装饰器

    深入了解python装饰器

    这篇文章主要介绍了解python装饰器,装饰器定义一个为其他函数添加功能的函数,装饰器就是在不修改装饰对象源代码以及调用方式的前提下,为装饰对象添加新功能,下面和小编一起进入文章内容了解更多知识,需要的朋友可以参考一下
    2022-03-03
  • PyTorch中clone()、detach()及相关扩展详解

    PyTorch中clone()、detach()及相关扩展详解

    这篇文章主要给大家介绍了关于PyTorch中clone()、detach()及相关扩展的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-12-12
  • Python使用paramiko连接远程服务器执行Shell命令的实现

    Python使用paramiko连接远程服务器执行Shell命令的实现

    这篇文章主要介绍了Python使用paramiko连接远程服务器执行Shell命令的实现,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-03-03
  • 详解python实现多张多格式图片转PDF并打包成exe

    详解python实现多张多格式图片转PDF并打包成exe

    这篇文章主要为大家介绍了python实现多张多格式图片转PDF并打包成exe方式详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-01-01
  • python使用Flask框架获取用户IP地址的方法

    python使用Flask框架获取用户IP地址的方法

    这篇文章主要介绍了python使用Flask框架获取用户IP地址的方法,实例分析了Python使用Flask框架remote_addr获取IP的技巧,非常具有实用价值,需要的朋友可以参考下
    2015-03-03

最新评论