目录
  • 前言
  • 流线图概述
    • 什么是流线图?
    • 流线图应用场景
    • 获取流线图方法
  • 流线图属性
    • 设置流线图密度
    • 设置流线宽度
    • 设置流线颜色
    • 设置流线缩放
    • 设置流线颜色系
  • 绘制流线图步骤
    • 小试牛刀
      • 总结

        前言

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