本文摘要:
主要介绍matlab的画图对象句柄的属性,线的句柄属性和轴的句柄属性。通过修改句柄属性不同的值,可以达到显示不同绘图效果的作用。
我们先看一段简单的代码
theta = -pi:0.01:pi;x = cos(theta);y = sin(theta)+((cos(theta)).^2).^(1/3);figure;h = plot(x,y);
x和y根据极坐标的角度,算出的值,生成的图片如下:
h是我们所画的线的句柄,h里的属性如下图,我们可以修改h里的属性来修改我们所画线的显示图样。其中比较常用可以修改的有:
线的颜色(Color)
线的风格(LineStyle)
线的宽度(LineWidth)
线的标记样式(Marker)
线的标记样式大小(MarkerSize)
线的颜色(Color)
默认的颜色有以下这几种,比如想把线的颜色改为红色,可以使用
h.Color='red';
或用简称
h.Color='r';
但是如果这几种颜色不能满足需求,还可以直接使用R.G.B的值
h.Color=[0.8500 0.3250 0.0980]
具体三原色值对应的颜色,可以在下面这个网站上查询,注意这边R.G.B的值的范围是0-1,所以如果是0-255范围的,需要除以255
https://tool.oschina.net/commons?type=3
线的风格(LineStyle)
线的风格主要有实线('-'),虚线('--'),点线(':'),点划线('-.')
比如想使用虚线就输入命令
h.LineStyle = '--';
线的宽度(LineWidth)
线的宽度默认是0.5,如果想要线更粗,就把这个属性的值设大,越大越粗
h.LineWidth = 5;
线的标记样式(Marker)
主要有以下这几种
Value | Description |
---|---|
'o' | Circle |
'+' | Plus sign |
'*' | Asterisk |
'.' | Point |
'x' | Cross |
'square' or 's' | Square |
'diamond' or 'd' | Diamond |
'^' | Upward-pointing triangle |
'v' | Downward-pointing triangle |
'>' | Right-pointing triangle |
' | Left-pointing triangle |
'pentagram' or 'p' | Five-pointed star (pentagram) |
'hexagram' or 'h' | Six-pointed star (hexagram) |
'none' | No markers |
比如如果想要不显示具体的线,只把点显示成圆形,可以使用如下命令
h.Marker = 'o';h.LineStyle = 'none';
线的标记样式大小(MarkerSize)
这个属性的值越大,那么标记也就越大,比如我们想要圆圈标记小一些
h.MarkerSize = 3
线的属性介绍完了,线的父级对象是轴,我们可以获取轴的句柄
ax = h.Parent;
对于轴的属性,一般的常用修改有:
给当前绘图加标题以及给各个轴加标题
控制各个轴显示的范围,以及轴上的显示的标尺
控制各个轴网格的显示
控制在当前轴上继续绘图
控制显示当前轴上各个绘图的标签显示
在一个图框中画多个坐标轴
给当前绘图加标题以及给各个轴加标题
ax.Title.String = '520';ax.XLabel.String = 'x-axis';ax.YLabel.String = 'y-axis';
通过上述的命令,可以给当前绘图以及轴加标题
控制各个轴显示的范围,以及轴上的显示的标尺
将绘图的坐标轴范围都变为[-2 2]
ax.XLim = [-2 2];ax.YLim = [-2 2];
将x轴以及y轴的标尺变为字符
ax.XTickLabel = {'L';'O';'V';'E';'!'};ax.YTickLabel = {'!';'!';'R';'E';'B';'E';'I';'L';'!'};
控制各个轴网格的显示
给x和y轴加上粗网格
ax.XGrid = 'on';ax.YGrid = 'on';
给x和y轴加上细网格
ax.XMinorGrid = 'on';ax.YMinorGrid = 'on';
控制在当前轴上继续绘图
ax.NextPlot = 'add';h = plot(x,y-0.5);
其中如果想要在当前轴上重新绘图,则输入
ax.NextPlot = 'replace';
控制显示当前轴上各个绘图的标签显示
如果一个轴上有多个绘图,想要给各个图做标注的话,可以使用如下命令。其中有几个绘图就填几个标注。
legend(ax,{'Line 1','Line 2'});
在一个图框中画多个坐标轴
还可以在一个图框中再加一个轴,进行绘图
ax2 = axes('Position',[0.15 0.15 0.2 0.2],'Box','on');plot(x,y,'r');ax2.XLim = [-2 2];ax2.YLim = [-2 2];
还可以在一个图框中创建多个Tab,然后分别进行绘图
figure;tab1 = uitab('Title','Tab1');ax1 = axes(tab1);plot(x,y,'r');tab2 = uitab('Title','Tab2');ax2 = axes(tab2);plot(x,y,'m');
关于绘图对象句柄的常用属性就介绍完啦,相信熟练掌握这些命令后,就可以自由组合,画出自己想要的图形了。