毕业季发这么一篇日志似乎不太应景~但鉴于"Matlab Tips"躺在Gmail
Task队列最顶端实在是太久了,还是趁着腐败活动的间隙干掉它= =,算是纪念用error、out of
memory和死机陪伴我大三大四无数个夜晚的matlab。
之前两章八了八matlab作图的基本技巧和主要的画图命令。最重要的就是get与set命令,以及如何在Help中查找相关的属性(axes
properties, barseries properties, lineseries properties
.....)。然而在实际应用中,经常需要把不同类型的图像组合在一起,或者在同一幅图里显示多个坐标轴。本章就主要来讲讲“叠加作图”和“多坐标轴”以及一些零碎的注意事项。
目录
1. 叠加作图 —— 以线性回归为例
2. 双y轴作图
3. 多坐标轴
4. 其他
Tips
1. hold on进行叠加作图
2. regress命令需要加一个ones作为常数项
3. 调整Postition属性来实现多个坐标轴的组合
4.
colormap实际上是一个矩阵,可以通过矩阵操作组合自己需要的map
5. 出图时注意字号和线宽等细节内容
1. 叠加作图 —— 以线性回归为例
线性回归图是最常用到的图表之一,用matlab做线性回归比excel复杂一点点(貌似也不止一点点...)。其中就要用到hold
on命令来进行不同数据序列在同一坐标轴下的叠加。
首先来简单地构造X、Y两个数据序列
%% Generate data
series
X =
(1:30)';
Y = X +
randn(30,1);
因变量Y是在自变量X上增加了一个(0,1)正态分布的误差(randn(m,n)命令是构造一个正态分布,均值为0方差为1,大小为m*n的矩阵)。简单地用scatter(X,Y)命令就可以得到如下的图形
为了画出这些点回归之后的直线,需要先计算出线性回归模型的系数
[b bint r rint stats] =
regress(Y,[X ones(length(X),1)]);
matlab中用regress命令来实现线性回归,ones(length(X),1)代表常数项,返回的结果中b代表斜率,r代表残差,stats中包含R2及p等信息,具体参见Help中相关内容。之后就可以用如下命令同时画出散点图以及拟合后的直线
hf = figure('Co