MATLAB绘图小记
前言
matlab中使用plot绘图时经常需要自行对字体字号等细节进行调整以使图片更加美观。此文对一些常见操作进行汇总。
正文
- plot
- 线性设置
- 实线 -. 点划线 -- 长虚线 : 短虚线
. 点 。 圈号 × 叉号 * 星号 + 加号
'square' 方形 'diamond'三角形 ……………………………………
需要特别注意的是,我们有时候想要实现在绘制线条的同时,把对应的数据点标注出来。此时就要用到组合线条模式。
上面所给出的线型,第二、三行任何一个都可以和第一行任何一个进行组合,从而构成组合线条
- 颜色
b:蓝色 k:黑色 g:绿色 r:红色 c:青色
m:紫红色 w:白色 y:黄色
注意:当既要使用颜色又要使用线型时,两者直接放在一个单引号里面即可,前后顺序无所谓,但是绝不能分开放在两个单引号里面。 - 线的粗细
借助LineWidth进行设置,比如:
plot(t,h(:,1),'r',t,h(:,2),'b','linewidth',2);
- 标记点的边缘颜色
MarkerEdgeColor - 填充颜色
MarkerFaceColor - 标记点的大小
MarkerSize
例如:
plot(t,y,'-bs','LineWidth',2,... %设置线的宽度为2
'MarkerEdgeColor','k',... %设置标记点边缘颜色为黑色
'MarkerFaceColor','y',... %设置标记点填充颜色为黄色
'MarkerSize',10) %设置标记点的尺寸为10
- 图中文字格式的设置
上脚标 ^ 下脚标 _
希腊字母等使用转义字符进行,具体如下:
小写字母:\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')
- xlable & ylable
- 设置x轴的标记文字大小(y轴同理ylabel),可以用:
xlabel(‘xxxx’,‘fontsize’,18);%xxxx轴名称 - 如果想改变横坐标的长度,比如1:10变为11:20:
set(gca,‘XTickLabel’,get(gca,‘XTick’)+10);
如果想改变横坐标的长度,比如从1:10改成1:100,可以用:
set(gca,‘XTickLabel’,get(gca,‘XTick’)*10);
- title
title(‘fbf’) 加名字 - legend
legend(‘dvd’,‘dvv’)
注意:添加图例,与绘制时的顺序对应 - set
set(gca,‘FontSize’,15);可用于设置坐标轴数字和文字大小以及legend中字体大小 - xlim([a,b]) 限制x坐标范围为a到b
同理ylim - subplot
分割图形窗口用subplot函数来实现,其调用格式为:
subplot(n,m,k) 或subplot(nmk)------n,m分别表示将窗口分割的行数和列数,k表示要画图部分的代号,表示第几个图 形,nmk三个数可以连写,中间不用符号分开。
注意:subplot函数没有画图功能,只是将窗口分割。 - hold on
擦掉坐标系中已有的图形对象,但设置了hold on后,可以保持坐标系中已绘出的图形 - 双纵坐标轴plotyy
即左边表示一个物理量,右边表示另一个物理量
[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
打开坐标网格 - 定义坐标范围
一般MATLAB自动定义坐标范 围,如用户认为设定的不合适,可用:axis([Xmin, Xmax, Ymin, Ymax]) 来重新设定; - 正方形的坐标系
通常MATLAB的坐标系是长方形,长宽比例大约是 4:3,为了得到一个正方形的坐标系可用:axis square - 坐标轴控制
MATLAB的缺省方式是在绘图时,将所在的坐标系也画出来,为隐去坐标系,可用axis off;axis on则显示坐标轴