庞家平
MATLAB画图常用命令
2016-3-25 17:37
阅读:8925
标签:MATLAB, plot, 坐标轴, subplot, loglog
一、图形窗口与坐标系1.1 图形窗口

MATLAB在图形窗口中绘制或输出图形,因此图形窗口就像一张绘图纸。

打开图形窗口的方法有三种:

1)调用绘图函数时自动打开;

2)File---New---Figure新建;

3)figure命令打开,close命令关闭.

在运行绘图程序前若已打开图形窗口,则绘图函数不再打开,而直接利用已打开的图形窗口;若运行程序前已存在多个图形窗口,并且没有指定哪个窗口为当前窗口时,则以最后使用过的窗口为当前窗口输出图形.

1.2 坐标系

一个图形必须有其定位系统,即坐标系。

在一个图形窗口中可以有多个坐标系,但只有一个当前的坐标系。

每个坐标系都有唯一的标识符,即句柄值。当前坐标系句柄可以由MATLAB函数gca获得。

使某个句柄标识的坐标系成为当前坐标系,可用如下函数:axes(h) h为指定坐标系句柄值。

1)定义坐标范围:一般MATLAB自动定义坐标范围,如用户认为设定的不合适,可用:axis([Xmin,Xmax, Ymin, Ymax]) 来重新设定;

2)坐标轴控制:MATLAB的缺省方式是在绘图时,将所在的坐标系也画出来,为隐去坐标系,可用axisoff;axis on则显示坐标轴

二、平面图形绘制2.1 plot函数

plot函数是最基本的绘图函数,其基本的调用格式为: plot(x,y)

多组变量绘图:plot(x1, y1, 选项1, x2, y2, 选项2, ……)

上面的plot格式中,选项是指为了区分多条画出曲线的颜色,线型及标记点而设定的曲线的属性.MATLAB在多组变量绘图时,可将曲线以不同的颜色,不同的线型及标记点表示出来.

 

2.2 对数坐标图绘制函数:

在对数坐标图的绘制中,有三种绘图函数:semilogx,semilogyloglog函数.

1)semilogx( )------绘制以X轴为对数坐标轴的对数坐标图.

其调用格式为:semilogx(x,y,'属性选项')

其中属性选项同plot函数.

该函数只对横坐标进行对数变换,纵坐标仍为线性坐标.

2)semilogy( )------绘制以Y轴为对数坐标轴的对数坐标图.

其调用格式为:semilogy(x,y,'属性选项')

该函数只对纵坐标进行对数变换,横坐标仍为线性坐标.

3)loglog( )------ 绘制X,Y轴均为对数坐标轴的图形.

其调用格式为:loglog(x,y,'属性选项')

该函数分别对横,纵坐标都进行对数变换.

:x=0:0.1:6*pi;

y=cos(x/3)+1/9;

subplot(221),semilogx(x,y);

subplot(222),semilogy(x,y);

subplot(223),loglog(x,y);

4)MATLAB还提供了一个实用的函数:logspace( )函数,可按对数等间距地分布来产生一个向量,

其调用格式为:

x=logspace(x1,x2,n)

这里,x1表示向量的起点;x2表示向量的终点;n表示需要产生向量点的个数(一般可以不给出,采用默认值50).

 

2.3 绘制多个子图:subplot()函数

MATLAB允许在一个图形窗口上绘制多个子图(如对于多变量系统的输出),允许将窗口分成nxm个部分. 分割图形窗口用subplot函数来实现,其调用格式为:

subplot(n,m,k)subplot(nmk)------n,m分别表示将窗口分割的行数和列数,k表示要画图部分的代号,表示第几个图形,nmk三个数可以连写,中间不用符号分开.

例如:将窗口划分成2x2=4个部分,可以这样写:

subplot(2,2,1),plot(……)

subplot(2,2,2),……

subplot(2,2,3),……

subplot(2,2,4),……

更高级的可以这样写,能够细致的设置每个子图的位置:

subplot('position',[0.100.55 0.38 0.4])

subplot('position',[0.580.55 0.38 0.4])

subplot('position',[0.100.12 0.38 0.4])

subplot('position',[0.580.12 0.38 0.4])

:subplot函数没有画图功能,只是将窗口分割。

2.4 errorbar函数

errorbar函数是可以绘制带有误差棒的图,其基本的调用格式为: errorbar(x,y,z),具体操作见如下面的实例:

load('ALGO_GPS.neu');  % 加载数据

data = ALGO_GPS;

dyr = data(:,1);

resi_u_gps =detrend(data(:,6))*1000;  % 去除趋势项,单位:mm

e =data(:,9)*1000;  % 误差项

errorbar(dyr,resi_u_gps,e,'-o','Color',[0.20.8 0.8]','LineWidth',2,'MarkerEdgeColor','k',...

  'MarkerFaceColor','g','MarkerSize',8);  % 带误差棒的图,('Color',[0.2 0.8 0.8]' 这个设置为颜色配比,根据自己喜好设置颜色配比,范围为(0,1))

grid on;

hl = legend('GPS','Location','NorthWest');

set(hl,'Orientation','horizon');  % 图例水平排列

set(hl,'Box','off')  % 去除图例边框

xlim([2002.02012.0]);

三、图形的修饰与标注3.1 图形对象修改常用函数:

1)set函数:用于设置句柄所指的图形对象的属性.

Set函数的格式为:

set(句柄, 属性名1, 属性值1, 属性名2, 属性值2, ……)

:h=plot(x,y)

set(h, 'Color',[1,0,0])------将句柄所指曲线的颜色设为红色.

2)get函数:获取指定句柄的图形对象指定属性的当前值.

格式为:get(句柄, '属性名')

: get(gca, 'Xcolor')------获得X轴的当前颜色属性值.

执行后可返回X轴的当前颜色属性值[0,0,0](黑色).

3)如果没有设置句柄,则可以使用下列函数获得:

gcf:获得当前图形窗口的句柄;

gca:获得当前坐标轴对象的句柄;

gco:获得当前对象的句柄.

3.1 坐标轴的调整

1)坐标轴的说明:xlabelylabel函数

格式:xlabel('字符串') ylabel('字符串')

2)坐标轴的标尺属性:

'Xtick','Ytick','Ztick'------标度的位置,值为向量

'Xticklabel','Yticklabel','Zticklabel'------轴上标度的符号,它的值为与标度位置向量同样大小(向量个数相同)的向量.

axis([xmin,xmax,ymin,ymax])函数来调整图轴的范围。

控制坐标性质的axis函数的多种调用格式:

axis(xmin xmaxymin ymax) :指定二维图形xy轴的刻度范围,

axis auto                  :设置坐标轴为自动刻度(缺省值)

axis manual(或axis(axis)):保持刻度不随数据的大小而变化

axis tight                 :以数据的大小为坐标轴的范围

axis ij                    :设置坐标轴的原点在左上角,i为纵坐标,j为横坐标

axis xy                    :使坐标轴回到直角坐标系

axis equal                 :使坐标轴刻度增量相同

axis square                :使各坐标轴长度相同,但刻度增量未必相同

axis normal                :自动调节轴与数据的外表比例,使其他设置失效

axis off                   :使坐标轴消隐

axis on                    :显现坐标轴

3)字体设置属性:

'FontAngle'------设置字体角度,选项为: 'normal'------正常;'italic'------ 斜体; 'oblique'------ 倾斜;

'FontName'------字体名称;

'FontSize'------字号大小

'FontWeight'------字体的轻重,选项为:'light', 'bold'

可以写成:

axis([0 370 -540]);

set(gca,'xtick',[0:50:370370],'xticklabel',[],'fontname','Times New Roman','fontsize',12,'fontweight','bold','linewidth', 2);

ylabel('Ta(^oC)');%xlabel('DOY');

 

 

3.3 文字和图例

说明文字:text函数,按指定位置在坐标系中写出说明文字.

格式为:text(x1, y1, '字符串', '选项')

x1,y1为指定点的坐标;'字符串'为要标注的文字;'选项'决定x1,y1的坐标单位,如没有选项,x1,y1的坐标单位和图中一致;如选项为'sc',x1,y1表示规范化窗口的相对坐标,其范围为01.

也可以按下面这样写,先获取 x0y0的坐标,

a=get(gca);x=a.XLim;y=a.YLim;x0=x(1)+0.05*(x(2)-x(1));y0=y(1)+0.9*(y(2)-y(1));  %获取text坐标

text(x0,y0,'(c)','fontname','TimesNew Roman','fontsize',14,'fontweight','bold');

clear a x y x0y0;

添加图例:legend函数

格式:legend('字符串1', '字符串2', ……, pos)------pos指定图例框显示的位置.

图例框被预定了6个显示位置:

0------取最佳位置; 1------右上角(缺省值); 2------左上角; 3------左下角; 4------右下角; -1------图的右侧.

也可以这样写:

lg=legend('字符串1','字符串2','字符串3');

set(lg,'Box','off','Location','NorthEast','orientation','horizon');

 

3.4线型和颜色设置

各种颜色属性选项:

'r' 红色 'm' 粉红 'g' 绿色 'c' 青色 'b' 兰色 'w' 白色 'y' 黄色 'k' 黑色

各种线型属性选项:

'-' 实线 '--' 虚线 ':' 点线 '-.' 点划线

各种标记点属性选项:

'.' 用点号绘制各数据点     '^' 用上三角绘制各数据点

'+' '+'号绘制各数据点     'v' 用下三角绘制各数据点

'*' '*'号绘制各数据点     '>' 用右三角绘制各数据点

' .' '.'号绘制各数据点     '<' 用左三角绘制各数据点

's'squar 用正方形绘制各数据点   'p' 用五角星绘制各数据点

'd'diamond用菱形绘制各数据点  'h' 用六角星绘制各数据点

这些选项可以连在一起用,:'-.g'表示绘制绿色的点划线,'g+'表示用绿色的'+'号绘制曲线。

注意:1)表示属性的符号必须放在同一个字符串中; 2)可同时指定2~3个属性; 3)与先后顺序无关; 4)指定的属性中,同一种属性不能有两个以上。

设置曲线线宽、标记点大小,标记点边框颜色和标记点填充颜色等

还可以进一步设置包括线的宽度(LineWidth),标记点的边缘颜色(MarkerEdgeColor),填充颜色(MarkerFaceColor)及标记点的大小(MarkerSize)等其它绘图属性.

LineWidth 线宽    数值,如0.51等,单位为points

MarkerEdgeColor 标记点边框线条颜色颜色字符,如’g, b’等

MarkerFaceColor 标记点内部区域填充颜色颜色字符

MarkerSize 标记点大小   数值,单位为points

例:设置图线的线形、颜色、宽度、标记点的颜色及大小。

   t=0:pi/20:pi; y=sin(4*t).*sin(t)/2;

  plot(t,y,'-bs','LineWidth',2,'MarkerEdgeColor','k', 'MarkerFaceColor','y','MarkerSize',10);

 

来源:

1. http://www.eefocus.com/sunshine/blog/09-05/170813_8c98c.html

2. http://blog.sina.com.cn/s/blog_4d8716e401000apg.html

3. http://blog.sina.com.cn/s/blog_879e11f10100thex.html

4. http://blog.sciencenet.cn/blog-350278-712402.html

5. http://blog.sciencenet.cn/blog-72586-764570.html

 


转载本文请联系原作者获取授权,同时请注明本文来自庞家平科学网博客。

链接地址:https://wap.sciencenet.cn/blog-3065759-965017.html?mobile=1

收藏

分享到:

上一篇
当前推荐数:0
推荐到博客首页
网友评论0 条评论
确定删除指定的回复吗?
确定删除本博文吗?