查看原文
其他

    说好的写教程,那就开始动手写吧。

     

    今天和大家讲讲折线图在Matlab中如何实现,并且根据自身需要对线条参数,如线段类型、线段宽度、线段颜色等,进行调整。

     

    第一步:生成数据

    在一线城市,房价是年轻人普遍关心的问题,那么我这里假设的数据是北京地区商品房交易价格同比变化情况

    【同比】:与历史同时期比较,比如2018年5月与2017年5月的比较

     


    %表示注释,Matlab运行中并不会对这部分内容进行计算处理

    如果是多行需要注释,可以使用一下注释方式

    %{

    需要注释的内容

    %}

     

    %randn是用来生成服从均值为0,标准差为1的正态分布的随机数

    %size是用来计算变量的维度,M行xN列x P维度,这里size(x)会输出两个数1,8代表这是一个1行8列的向量

    %linspace是用来生成以一定间距线性变化的数据,这里5是起始数值,10是终止数值,numel是要生成数值的个数

    %numel是用来计算变量元素的个数

     

    这里可以把刚才所有的函数简介放到多行注释内

    %{

    randn是用来生成服从均值为0,标准差为1的正态分布的随机数

    size是用来计算变量的维度,M行xN列xP维度,这里size(x)会输出两个数1,8代表这是一个1行8列的向量

    linspace是用来生成以一定间距线性变化的数据,这里5是起始竖直,10是终止数值,numel是要生成数值的个数

    numel是用来计算变量中所含元素的个数
    %}

     

    第二步:画图

     


    这里先用figure函数画出一个图像框,相当远画布,之后的操作都是在这个画布上操作的,如果不用这个函数先生成画布,当重新用plot画图时,会在前一次所画画布上进行操作并将前一次所画画布覆盖。因此强烈建议每一次画图之前都先用figure函数生成一个空白图像框。

    这里plot是进行先画出一个线形图,都是使用Matlab自带的参数,如下图:


    第三步:修图

    我们要根据自己的需要对参数修改,刚才在plot的时候还返回了一个叫f 的变量,这个是图形的句柄,相当于画布中某一次所画内容的名字,我们要对f进行操作,以实现对图形的修饰。


    现在来了解一下set中参数的意义

    'linestyle'‘LineStyle'是用来确定线条的形状

    '-', 代表实线

    '--',代表折虚线

    ' : ', 代表点虚线

    ':.', 代表折点虚线

     

    ‘color’'Color'是线条的颜色,可以使用

    'y',黄色

    'r',红色

    'k',黑色

    'b',蓝色

    'g',绿色

    'm',洋红色

    'c',青色

    'w',白色

    也可以使用[R G B]值来指定具体的颜色值,但是每一个值只能介于[0 1]之间,这里的[0.75 0.75 0.75 ]就是浅灰色,如果查到的RGB值是大于1,比如[191 191191],直接除以255就可以把颜色值转为[0 1]之间了,即[191 191 191]/255

     

    ‘linewidth'‘LineWidth'指定了线条的宽度

     

    ‘marker'‘Marker'用于指定点形

    标记符    点形
     +          加号
     o          圆圈
     *          星号
     .          实心点
     x         叉号
     s         正方形
     d         钻石形
     ^         上三角形
     v         下三角形
     >        右三角形
     <        左三角形
     p        五角星形
     h        六角星形

    markersize’或‘MarkerSize’用以说明点形的大小

    ‘markerfacecolor’’MarkerFaceColor’用来说明点形内部的填充颜色,用法如上文中的‘color’

    ‘markeredgecolor’’MakerEdgeColor’用来定义点形外周线的颜色,用法如上文中的‘ color’

     

    当然,你也可以在plot时一次性把这些参数都定义好




     

    接下来就该给图形定义横坐标、纵坐标,还有标题了

    这里xlabel和ylabel之后第一个‘ ’内的文本字符是用来说明横坐标和纵坐标的名称;‘fontname’和‘fontsize’是用来指定坐标轴文本的字体名称和字体大小。

     

    title的名称是‘Beijing’,我这里为了避免使用Matlab自带的字体及其大小用latex对字体及其大小进行了规定,\fontname{字体名称}\fontsize{字体大小}

     

    接着我想对整个图形做进一步修饰

    ‘xlim’和‘ylim’分别说明了横坐标和纵坐标显示的范围

    ‘xtick’和‘ytick’分别指定了横坐标和纵坐标刻度的范围

    ‘xticklabel'和‘yticklabel’分别定义了横坐标和纵坐标刻度上显示的具体数值

    box’,‘off’不显示图像右侧和上方的边框,若为‘on’则显示边框。

     

    最后,如果想在折线图上显示每一个点的具体数值,就用text函数。


    为了修饰,我对呈现text的具体坐标做了调整,每一个数据都往左平移0.25,往上平移0.40,由于有小数,看起来会不够美观,又对数据进行了指定小数点位数的约束。


     

    以后的教程中我会给大家介绍怎么样画出误差棒(SD、SE、95% CI),如何呈现多样本时间序列中的误差棒图,shadowed errorbar,这个在EEG和ERP数据可视化中更为常用。


    我把这一次所用的脚本都上传到百度云里,大家感兴趣的可以自行下载。

    链接:https://pan.baidu.com/s/1oPokQWLAxPp9CCXxFaaymg 密码:ijwe


    注:欢迎转发和转载,但转载请通过白名单转载或在醒目位置说明出处。







    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存