Matlab具有强大的图形绘制功能,而且方便快捷,可以迅速得到自己想要的图形。
在使用Matlab进行图形绘制时,有很多小技巧可以使绘制的图行看起来更专业、更美观。。。
话不多说,一起来看一下常用的一些技巧设置方法。
一、线型设置
- 实线 -. 点划线 -- 长虚线 : 短虚线
. 点 。 圈号 × 叉号 * 星号 + 加号
'square' 方形 'diamond'三角形 ……………………………………
需要特别注意的是,我们有时候想要实现在绘制线条的同时,把对应的数据点标注出来。此时就要用到组合线条模式。
上面所给出的线型,第二、三行任何一个都可以和第一行任何一个进行组合,从而构成组合线条
这里给出一个例子,
plot([1,2,3],[4,5,6],'*-',[2,4,5],[3,8,7],'+ --')
如下图所示:
二、颜色
b:蓝色 k:黑色 g:绿色 r:红色 c:青色(cyan)
m:紫红色(magenta) w:白色 y:黄色
直接给一个例子:
plot([1,2,3],[4,5,6],'*-r',[2,4,5],[3,8,7],'c + --')
需要注意的一点是:当既要使用颜色又要使用线型时,两者直接放在一个单引号里面即可,前后顺序无所谓,但是绝不能分开放在两个单引号里面。
因为matlab默认的绘图格式设置就是这一个参数,只能放在一块!!!
三、 线的粗细(LineWidth)
plot([1,2,3],[4,5,6],'*-r',[2,4,5],[3,8,7],'c+ --','LineWidth',2)
针对这个属性,我发现只能放在最后面,放在第一个线条绘制的后面就会报错。
因此只能对两条线同时改变线条的粗细属性。
暂时还没有发现如何只改变一条线的粗细,还请各位大佬指点指点
四、图中文字格式的设置
在进行图例标注或者坐标轴的标记时,有时可能需要一些特殊的字符,比如希腊字母等,有时还需要上角标、下角标等。这就需要使用一些特殊的格式来完成转换。
上脚标 ^ 下脚标 _
希腊字母等使用转义字符进行,具体如下:
小写字母:\alpha, \beta, \gamma, \delta, \epsilon, \kappa, \lambda, \mu, \nu, \omega, \phi,
\pi, \chi, \psi, \rho, \sigma, \tau, \upsilon 等
大写字母:\Sigma, \Pi, \Lambda, \Omega, \Gamma 等
若希腊字母带脚标,则使用 \alpha_1 这种格式,上脚标 \alpha^2,
不是脚标,而是直接和数字组合使用 \alpha3
plot([1,2,3],[4,5,6],'*-r',[2,4,5],[3,8,7],'c+ --')
legend('红色^r','青色_c')
title('\alpha')
五、横纵坐标设置
xlabel('x轴','Fontsize',12);
ylabel('y轴','Fontsize',12);
xlabel是横坐标,ylabel是纵坐标,Fontsize是设置字体大小。
如果想改变横坐标的长度,比如从1:10改成1:100,可以用:
set(gca,'XTickLabel',get(gca,'XTick')*10);
也可以实现1:10变为11:20,把“*”改成“+”即可。
直接给一个实例:
subplot(1,2,1)
plot([1,2,3],[4,5,6],'*-r',[2,4,5],[3,8,7],'c+ --')
legend('红色^r','青色_c')
title('\alpha')
xlabel('x轴','Fontsize',10)
ylabel('y轴','Fontsize',20)
subplot(1,2,2)
plot([1,2,3],[4,5,6],'*-r',[2,4,5],[3,8,7],'c+ --')
legend('红色^r','青色_c')
title('\alpha')
xlabel('x轴','Fontsize',10)
ylabel('y轴','Fontsize',20)
set(gca,'XTickLabel',get(gca,'XTick')+10)
set(gca,'YTickLabel',get(gca,'YTick')*2)
六、绘制双纵坐标轴的图形
在实际应用中,有时想要绘制在一张图上的数据大小相差过大,或者可能是不同的物理量代表着不同的意义,比如温度和降水量随月份变化的图形。此时我们就需要使用双纵坐标轴,左边表示一个物理量,右边表示另一个物理量。
此时可以使用 matlab 中提供的 [AX,H1,H2] =plotyy(x,y1,x,y2,'plot'); 绘图函数进行。具体来看一个例子:
x = [1,2,3,4,5,6];
y1 = [14,16,29,25,19,16];
y2 = [300,500,900,700,600,400];
[AX,H1,H2] =plotyy(x,y1,x,y2,'plot');
set(get(AX(1),'ylabel'),'string', '温度','fontsize',12); %y1的坐标名称
set(get(AX(2),'ylabel'),'string', '降水量','fontsize',12); %y2的坐标名称
xlabel('时间','fontsize',12); %横坐标x的坐标名称
set(H1,'Marker' ,'o'); %y1的线型
set(H2,'Marker' ,'*'); %y2的线型
set(gca,'linewidth',1.5); %设置边框宽度
legend('温度','降水量');
需要注意的一点是,在设置线型时,只需要使用 * ,就可以画出点带线,不需要进行 *- 标注,这样标会报错。
七、其他一些细节
grid on 打开坐标网格
title('fbf') 加名字
xlabel('fbg') x坐标轴名称
ylabel('dvd') y坐标轴名称
figure('name') 新建一个图形绘制窗口name
subplot(2,2,1) 将图形绘制窗口切成二行二列,当前图像绘制在第一个位置处
legend('dvd','dvv') 添加图例,与绘制时的顺序对应
xlim([a,b]) 限制x坐标范围为a到b
ylim([c,d])
………………………………未完待续……………………
八、matlab交互式绘图神器 mupad
我们有时候需要可以过原点的图,而用plot来画很费劲,这里有一个强大的绘图神器。
在命令行输入 mupad,回车即可打开,然后输入我们想要绘制的函数等,就可以快速绘制出来,还可以三维绘图。
更多的其他功能目前还没有进行深入了解,日后再补……………………
如下图所示:
不足之处恳请各位指正!!!
如若不弃,转载请附上原文链接,谢谢!!!