说好的写教程,那就开始动手写吧。
今天和大家讲讲折线图在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
注:欢迎转发和转载,但转载请通过白名单转载或在醒目位置说明出处。