MATLAB绘图小记

前言

matlab中使用plot绘图时经常需要自行对字体字号等细节进行调整以使图片更加美观。此文对一些常见操作进行汇总。

正文

  • plot
  1. 线性设置
- 实线           -. 点划线          -- 长虚线       : 短虚线         
.  点            。 圈号            × 叉号          * 星号         +  加号
'square' 方形    'diamond'三角形   ……………………………………
需要特别注意的是,我们有时候想要实现在绘制线条的同时,把对应的数据点标注出来。此时就要用到组合线条模式。
上面所给出的线型,第二、三行任何一个都可以和第一行任何一个进行组合,从而构成组合线条
  1. 颜色
    b:蓝色 k:黑色 g:绿色 r:红色 c:青色
    m:紫红色 w:白色 y:黄色
    注意:当既要使用颜色又要使用线型时,两者直接放在一个单引号里面即可,前后顺序无所谓,但是绝不能分开放在两个单引号里面。
  2. 线的粗细
    借助LineWidth进行设置,比如:
plot(t,h(:,1),'r',t,h(:,2),'b','linewidth',2);
  1. 标记点的边缘颜色
    MarkerEdgeColor
  2. 填充颜色
    MarkerFaceColor
  3. 标记点的大小
    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
  1. 设置x轴的标记文字大小(y轴同理ylabel),可以用:
    xlabel(‘xxxx’,‘fontsize’,18);%xxxx轴名称
  2. 如果想改变横坐标的长度,比如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则显示坐标轴