MATLAB是由美国mathworks公司发布的主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。我们可以利用它方便快捷的进行矩阵运算、绘制函数和数据、图像处理。
前一段时间作者在进行毕业设计时使用MATLAB绘制了论文中的一系列插图(包括曲线图、柱状图等),自我感觉其确实是一个必不可少的实用性工具,所以在这里为大家简单介绍一下MATLAB中的基本绘图命令。
plot函数
plot函数应该是matlab中最常用的绘图命令了,可以直接绘制二维图/三维图,同时我们可以控制绘制图形的marker来确定是绘制折线图还是散点图。
其最简单的用法为直接使用plot(X)。
例如:
plot(X); % X为一个列向量或行向量
这时,效果如下图所示,在图中我们可以发现matlab默认把X向量的下标作为了自变量,把对应存储的值作为因变量。
当然我们也可以直接输入(X, Y)两个向量,也可以为矩阵或者是参数和你想编辑的任意公式,分别作为自变量与因变量。例如:
X = 1: 1: 10;% 生成自变量X Y = 1: 1: 10;% 生成因变量Y plot(X, Y);% 绘制图形
好了,就是这么简单,我们已经了解了plot函数的基本用法,而且好像可以绘图了,但是这还远远不够,我们还想要控制图形的颜色,线宽,标识符应该怎么做呢?这就需要我们在后续设置一些参数了。
例如我们把plot(X, Y);修改为下述代码来设置颜色及标识符。
plot(X, Y, '.r');% 标记点为红色 . 的散点图 plot(X, Y, '*r');% 标记点为红色 * 的散点图 plot(X, Y, '-*r');% 带标记的红色曲线图
常用的颜色有:
‘r’ 红色
‘g’绿色
‘b’蓝色
‘k’黑色
‘m’品红
我们可以看一下最后一个命令画出的图形形状:
设置线宽及标识符代码需要另外加入参数’LineWidth’与’MarkerSize’
例如:
plot(X, Y, '-r','Marker', '*', 'LineWidth', 1.5, 'MarkerSize', 10);
其他还有一些参数我就不过多介绍了,大家自行探索!
还有一个问题是刚才我们所谈的都是对于一张图中的一条曲线,但是如果我们想要在一个图中画多条曲线呢应该怎么办呢?很简单,只需要在plot函数后面加入hold on; 就可以了。
示例:
X1 = 1: 1: 10; Y1 = 1: 1: 10; X2 = 1: 1: 10; Y2 = 0.5: 0.5: 5; plot(X1, Y1, '-r','Marker', '*', 'LineWidth', 1.5, 'MarkerSize', 10); hold on; plot(X2, Y2, '-r','Marker', '*', 'LineWidth', 1.5, 'MarkerSize', 10);
到目前为止,我个人认为我们已经介绍了关于plot函数的基本用法。
bar函数
我们在上面详细介绍了plot函数的用法及参数设置,plot函数在画散点图以及曲线图确实非常方便,但是有些情况我们想要使用柱状图来表达一些变量的统计分布,那么这就要使用bar函数了。
bar函数与plot函数非常类似,最常用的用法为:bar(X, Y);
示例:
X = 1: 1: 10; Y = 1: 1: 10; bar(X, Y); % X,Y中的值相互对应
当然,类似的,我们也可以调整颜色等参数(以及边缘线的粗细,颜色等这里就不做介绍了)
bar(X, Y, 'r');
最后我们再列举一个关于画一个矩阵的柱状图参数设置。(subplot函数用法可以见我的另一篇文章)
四种画法分别为:
grouped:矩阵中的每一行数据为一组,每一组画出当前行中列的值
stacked:以矩阵中的每一行画出一个bar,每一个bar中包含当前行中的所有数据,根据数值的大小占相应的比例
histc与Hist两种方式与第一种grouped方式类似,但是它们的不同之处在于对应的X轴位置。
Y=round(rand(5,3)*10); figure; % 建立一个图片 subplot(2,2,1); %2行2列的第一个位置 bar(Y,'grouped'); % 以'grouped'的方式画图 title('Group')% 图标题 subplot(2,2,2);%2行2列的第二个位置 bar(Y,'stacked');% 以'stacked'的方式画图 title('Stack') subplot(2,2,3);%2行2列的第三个位置 bar(Y,'histc');% 以'histc'的方式画图 title('Histc') subplot(2,2,4);%2行2列的第四个位置 bar(Y,'hist');% 以'hist'的方式画图 title('Hist')
好了,我们通过上述内容介绍了MATLAB中了常用两个作图函数plot与bar。
但是,各位是否认为这样的图片是否就可以直接插在论文中使用了呢?答案是否定的,仔细观察可以发现,我们还没有在图中加入X,Y轴的标签。
关于调整插图格式的问题,参考作者的另一篇博文:MATLAB绘图:插图格式调整