• Julia绘图初步:Plots


    Julia开发环境

    基础绘图

    Julia中最常用的绘图模块自然是Plots,点击]进入安装模式后,输入add Plots即可安装,装完之后按下退格键回到Julia环境,就可以调用了

    using Plots
    x = 0:0.1:10
    y = [sin.(x), cos.(x)]
    plot(x, y, linewidth=1, size=(600,300))
    
    • 1
    • 2
    • 3
    • 4

    效果如下

    在这里插入图片描述

    若希望开启子图绘制,则需指明layout参数,示例如下

    plot(x, y, size=(800,300), layout=(1,2))
    
    • 1

    在这里插入图片描述

    绘图类型

    Plots提供了多种绘图类型,下面在一张图中,逐个展示曲线图、散点图、直方图、后向接替图、前向接替图以及条形图

    plot(randn(20, 6), size=(800,400),
        layout = @layout([a b c; d e f]), 
        t = [:line :scatter :histogram :steppost :steppre :bar])
    
    • 1
    • 2
    • 3

    其中,通过宏@layout可更加细致地进行画面布局,行之间用分号隔开,列间则用空格区分。绘图结果如下

    在这里插入图片描述

    点线参数

    在曲线或者散点图中,点和线的形状是非常重要的风格参数,当一张图中绘制多组数据时,需要通过这些特征来对数据进行区分,尤其是在黑白打印,无法利用颜色的情况下。

    Plots提供了六种基本线型,在绘图时需要传入参数ls,或linestyle,示例如下

    LS = [:auto :solid :dash :dot :dashdot :dashdotdot]
    lsName = ["auto" "solid" "dash" "dot" "dashdot" "dashdotdot"]
    ys = [ones(10)*i for i in 6:-1:1]
    plot(ys, size=(800,400), ls=LS, labels=lsName)
    
    • 1
    • 2
    • 3
    • 4

    在这里插入图片描述

    相比之下,Plots中提供的点型就十分多了,示例如下

    MS = [:none :auto :circle :rect :star5 :diamond :hexagon :cross :xcross :utriangle :dtriangle :rtriangle :ltriangle :pentagon :heptagon :octagon :star4 :star6 :star7 :star8 :vline :hline :+ :x]
    
    msName = ["none" "auto" "circle" "rect" "star5" "diamond" "hexagon" "cross" "xcross" "utriangle" "dtriangle" "rtriangle" "ltriangle" "pentagon" "heptagon" "octagon" "star4" "star6" "star7" "star8" "vline" "hline" "+" "x"]
    
    plot([[i] for i in 1:1:length(MS)], size=(200,400),
        markershape = MS, labels=msName)
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    得到图像

    在这里插入图片描述

    在曲线图和散点图中,点和线都有特定的颜色和尺寸,由于颜色和尺寸并不像形状那样可以枚举,所以下面就列出相关的参数,就不举例了。

    颜色透明度直径
    markercolormarkeralphamarkersize
    线linecolorlinealphalinewidth

    三维绘图

    Plots提供了三维绘图功能,比如通过surface函数可绘制曲面图

    x = -3:0.1:3
    y = reshape(x, 1, 61)
    z = @.cos(x^2+y^2)/(1+x^2+y^2)
    Plots.surface(x, y, z)
    
    • 1
    • 2
    • 3
    • 4

    其中,x和y均为一维数组,z则是x和y经过广播计算之后得到的二维矩阵,surface的绘图逻辑是,根据输入的x,y格点,找到对应的z轴坐标,并以曲面的形式绘制出来,绘图结果如下

    在这里插入图片描述

  • 相关阅读:
    CDC复制软件标准模式和自适应模式的区别测试
    Unity ECS小知识1 - PhysicsTrigger Event
    软考 - 06 在线订餐管理系统
    python和R绘制箱线图+抖动点
    隐马尔可夫模型(一)Evaluation
    Javascript知识【JS-String对象&JS-Array对象&验证码切换】
    基于连续小波变换的厄尔尼诺海平面周期变化数据集分析
    网页前端设计-作业三(JavaScript)
    文件打包下载excel导出和word导出
    记LGSVL Map Annotation(3)利用map annotation生成一个十字路口的opendrive格式地图
  • 原文地址:https://blog.csdn.net/m0_37816922/article/details/132942843