![15cad1094af6572b36c9937d4d24aa25.png](https://i-blog.csdnimg.cn/blog_migrate/c5df149a6e1309b9cee38cb5ee2d8cbd.jpeg)
本文可以分为两部分,第一部分总结绘图时对图形的线型,颜色以及标记点等属性的控制方法;第二部分总结图形的附加部分,如图例,坐标轴,颜色条等的控制。该篇为第二部分
二、对于MATLAB中图形的附加部分,如图例,坐标轴,颜色条等的控制。
1、图形的基本操作函数
图形栅格的控制Grid()
该函数用于在二维或三维图形上控制坐标轴的栅格显示。
调用格式:
grid on:给当前的坐标轴添加栅格。
grid off: 取消当前的坐标轴中的栅格。
grid: 图形栅格显示状态的切换。
>> x = [0:2*pi];
>> subplot(121);plot(x,sin(x));grid on;
>> subplot(122);plot(x,sin(x));grid off;
![cac8c0029e86548b1e5854b9951e7281.png](https://i-blog.csdnimg.cn/blog_migrate/6d5eb6eeaff7664ac9629f6d7e30cfba.jpeg)
图形保持的控制Hold()
在图形窗口生成图形后,再生成下一幅图形的时候,会覆盖原图形,如果想保留原图形可以使用hold函数用于图形保持控制。
调用格式:
hold on: 当前图形窗口中的图形处于保持状态,后续图形叠加在原有的图形上。
hold off: 关闭图形窗口中的图形保持状态,后续图形覆盖原有图形。
hold: 在hold on与hold off之间转换。即在狄俄舰与覆盖图形之间切换。
>> x = [0:2*pi];
>> plot(x,sin(x));
>> hold on
>> plot(x,cos(x),'g--') %%此处绘图之后显示的是sin(x)和cos(x)。
>> hold off %%此处hold off关闭了图形保持状态,在下面调用plot时将前面的图形覆盖
>> plot(x,tan(x),'b')
![695c230dc790df56aa9d3443101ec36f.png](https://i-blog.csdnimg.cn/blog_migrate/3d41dd0a319ff82638d7feb64731e105.jpeg)
读点函数ginput()
函数ginput()用于交互时从MATLAB绘制的图形中读取点的坐标,其调用格式如下。
[x,y] = ginput(n): 通过鼠标读取图形中的点,返回点的横纵坐标值,其中x为点的横坐标值,y为点的纵坐标值,输入参数n为选择点的个数,可以按"ENTER"键提前结束读点操作。
[x,y] = ginput: 可以无限地读取图形中点的坐标知道按下"ENTER"键。
[x,y,button] = ginput: button值返回读点时的鼠标操作,其中'1'代表按下鼠标左键读点,'2'代表按下鼠标中键读点,'3'代表按下鼠标右键读点,通过不同鼠标按键的区别,而可以对读点进行分类。
图形缩放zoom()
zoom()函数用于对二维图形的缩放控制,放大或缩小会相应地改变坐标轴范围。
调用格式:
zoom on: 打开图形的缩放功能,通过单机鼠标,可以放大图形,放大图形后想要缩小图形,需要按住"shift"键,再单机鼠标键
zoom off: 关闭交互式图形缩放功能。
zoom out:将缩放后的图形恢复到原始状态。
zoom reset: 将当前图形的状态作为”原始态“,以后使用zoom out图形恢复到此状态
zoom: 用于切换缩放的状态。
zoom xon: 仅对x轴进行图形缩放
zoom yon: 仅对y轴进行图形缩放
图形保存saveas()
seveas()函数可以按照指定的格式保存图形。
调用格式:
seveas(gca,'filename','fileformat'): 其中gca指明保存当前的图形对象,filename为图形的文件名,可以为绝对路径下的文件名,或者直接为文件名,保存在当前路径下,fileformat为保存的图形的文件类型,包括多种图形格式:fig、eps、emf、jpg、tif等常用的图片格式类型,其中fig为matlab中默认的图形文件类型,保存为该格式后,下次打开后可以直接标记修改。
图形打印print()
print()函数可用于打印图形窗口的图形,必须紧跟在函数plot()后使用。
调用格式:
print filename: 命令中"filename"为打印的图形文件名。
print -dformat:命令中"dformat"为打印的图形文件的存储格式。
print…-option: 命令中"option"设置打印的图形文件的参数。
对于文件的打印完全可以等文件存储之后去打印。
2、坐标轴控制
(1) 坐标轴范围的控制:
axis([Xmin,Xmax,Ymin,Ymax]): 设置坐标轴的范围,指定当前坐标轴x轴和y轴的范围,Xmin为x轴的下限,其它类推
axis([Xmin,Xmax,Ymin,Ymax,zmin,zmax,cmin,cmax]):设置坐标轴x轴,y轴,z轴的范围以及坐标轴的颜色显示范围。
xlim([xmin,xmax]): 仅设置x轴的范围
ylim([ymin,ymax]):仅设置y轴的范围
zlim([zmin,zmax]): 仅设置z轴的范围
axis tight: 按紧凑的坐标轴范围,即坐标轴范围为绘图数据范围。
>> x = -pi:pi/100:pi;
>> plot(x,sin(x))
>> axis([-3.5,3.5,-2,2])
>> xlim([-pi,pi])
![3aeaa94f206615aec6fd6cc8bcdc27da.png](https://i-blog.csdnimg.cn/blog_migrate/2cdcae73a34fa52cf61531b0e9e89bce.jpeg)
(2)坐标轴刻度的设置
坐标轴刻度的设置需要使用控制函数set来完成设置
调用格式:
set(gca,'XTick',[XTickmin:XTickstep:XTickmax]): 设置数字刻度的显示范围和精度,与图形做图数据想对应。
set(gca,'XTickLabel',[XTickLabelmin:XTickLabelstep:XTickLabelmax]): 设置坐标轴刻度线下的数值显示,默认状态下为做图数据相应坐标轴数据范围和刻度。
set(gca,'XTickLabel',string): 设置文本坐标轴刻度。
>> x = -pi:pi/100:pi;
>> plot(x,sin(x))
>> set(gca,'XTick',[-pi:pi/2:pi]);
>> set(gca,'XTickLabel',{'-pi','-pi/2','0','pi/2','pi'})
>> axis equal
![4e4c17f89adf1a0db4f34d09520780aa.png](https://i-blog.csdnimg.cn/blog_migrate/5453a0947c7eb512962ca65ecafeda6d.jpeg)
(3)坐标轴字体的设置:
坐标轴字体的设置主要通过对字体的属性进行设置,常用的字体属性如下:
FontName: 字体的类型属性,包括常用的字体类型,
FontSize: 字体的大小属性。
FontUnits: 字体的单位属性。
FontWeight:字体样式属性,包括normal(正常),bold(加粗),light(倾斜),demi(黑体)
(4) 坐标轴边框的设置:
坐标轴边框常用的属性主要有颜色属性,下面以x轴为例,列举坐标轴边框属性
XDir属性:控制X轴方向属性,默认状态下属性值为"normal"可选属性值有"reverse"(逆转)
Xcolor:设置x轴边框的颜色属性
LineStyleOrder:设置坐标轴边框的线条类型属性
LinWidth: 设置坐标轴边框的线条颜色属性。
(5) 坐标轴形状和位置大小设置
类似于图形窗口大小的设置,坐标轴位置和大小的设置同样可以通过设置坐标轴对象的"position"来完成,其设置的语法格式如下
set(gca,'Position',[left,bottom,width,height]): 定义坐标轴的图形窗口的位置与大小。
通常状况下,MATLAB的坐标系时长方形,长宽比大约是4:3,但是有时可能需要设置正方形的坐标系,可以通过语句axis square设置。
>> x = -pi:pi/100:pi;
>> plot(x,sin(x));
>> get(gca,'Position');
>> set(gca,'Position',[0.1,0.2,0.3,0.4]);
>> axis square
![12b779a7bfbcb0f69e4c3b76015a53de.png](https://i-blog.csdnimg.cn/blog_migrate/c075009856efd212a3fc35533f09d960.jpeg)
(6) 坐标轴的显示控制
axis on :显示坐标轴,默认状态下显示坐标轴
axis off: 不显示坐标轴。
XGrid /YGrid: 控制坐标轴网格线的显示
>> x = -pi:pi/100:pi;
>> plot(x,sin(x));
>> set(gca,'XGrid','on');
>> axis on
![da5202cda8dda0119c233ee19c1f4247.png](https://i-blog.csdnimg.cn/blog_migrate/bf9fbc8332cf3cdcc6a97e7baa5e3c20.jpeg)
3、图形标注
(1) 标题标注的设置:
title('string'): 在图形窗口添加字符串string作为标题
title('string','PropertyName','PropertyValue',……): 在图形窗口添加标题,并对标题的格式设置。
(2) 坐标轴标注的设置
xlabel('string')/ylabel('string'):分别对当前坐标轴对象中x轴和y轴添加标注。
xlabel('string','ProperName',ProperValue……):添加标注后设置属性
(3) 文本标注的设置
文本标注需要调用text()函数和gtext()函数,text()函数需要设置文本标注的文职,而gtext()函数用于交互式的文本标注,函数执行后有用户在图形窗口中选择标注的位置。
text(x,y,'string'): 函数用于在图形指定位置(x,y)上标注字符串string,x,y为坐标轴实际数值的标注。
gtext('string'):函数用于交互式的标注在图形上标注字符串string,函数执行后,图形中将出现交叉线我们可以选择待标注的位置。
(4) 图例标注的位置
legend('string1','string2', ……): 为图形中各部分数据添加图例,字符串string1、string2……按照数据显示的顺序依次标注各部分数据的图例。
legend('string1','string2',pos): pos参数用于设置添加图例的位置,默认状态下生成的图例可能吧图形部分区域覆盖,pos可以取-1-4范围内的整数,按序分别代表:图形窗口右边、图形窗口之内(尽量不与图形覆盖)、图形窗口右上角、图形窗口左上角、图形窗口左下角、图形窗口右上角,同时图例也可以通过鼠标直接移动。
4、窗口分割
有时我们需要在一个窗口中绘制多个图形来做比较,这时我们需要调用subplot()函数
此函数可以将图形窗口进行分割,即在同一个窗口可以显示多个坐标轴的图形。
调用格式:
subplot(m,n,p): 函数把图形窗口分为
>> subplot(231);
>> ezplot('sin')
>> subplot(232);
>> ezplot('cos')
>> subplot(233);
>> ezplot('tan');
>> subplot(234);
>> ezplot('cot')
>> subplot(235)
>> ezplot('sec')
>> subplot(236)
>> ezplot('csc')
![64e2c74278e939f177472d2124e5d91f.png](https://i-blog.csdnimg.cn/blog_migrate/bccce60907725aa025725fa5cf6d4108.jpeg)
注意:在subplot()函数绘图之后若需要添加一个总标题,可以调用suptitle()函数
还有其它方法请参考下面链接:
https://blog.csdn.net/HLBoy_happy/article/details/77581802blog.csdn.net本文参考书籍:
《MATLAB从基础到精通》
由于能力不足,错误之处请批评指正。
更多MATLAB学习资源请入QQ群:953314432。