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,semilogy和loglog函数.
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)坐标轴的说明:xlabel和ylabel函数
格式:xlabel('字符串') ylabel('字符串')
2)坐标轴的标尺属性:
'Xtick','Ytick','Ztick'------标度的位置,值为向量
'Xticklabel','Yticklabel','Zticklabel'------轴上标度的符号,它的值为与标度位置向量同样大小(向量个数相同)的向量.
用axis([xmin,xmax,ymin,ymax])函数来调整图轴的范围。
控制坐标性质的axis函数的多种调用格式:
axis(xmin xmaxymin ymax) :指定二维图形x和y轴的刻度范围,
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表示规范化窗口的相对坐标,其范围为0到1.
也可以按下面这样写,先获取 x0和y0的坐标,
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.5,1等,单位为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
收藏