第三节 图形的修饰与标注
MATLAB提供了一些特殊的函数修饰画出的图形,这些函数如下:
1)坐标轴的标题:title函数
其调用格式为:title('字符串')------字符串可以写中文
如:title('My own plot')
2)坐标轴的说明:xlabel和ylabel函数
格式:xlabel('字符串')ylabel('字符串')
如:xlabel('This is my X axis') ylabel('My Y axis')
3)图形说明文字:text和gtext函数
A.text函数:按指定位置在坐标系中写出说明文字.
格式为:text(x1, y1, '字符串', '选项') x1,y1为指定点的坐标;'字符串'为要标注的文字;'选项'决定x1,y1 的坐标单位,如没有选项,则x1,y1的坐标单位和图中一致;如选项为'sc', 则x1,y1表示规范化窗口的相对坐标,其范围为0到1.
如:text(1,2, '正弦曲线')
B.gtext函数:按照鼠标点按位置写出说明文字.
格式为:gtext('字符串')
当调用这个函数时,在图形窗口中出现一个随鼠标移动的大十字交叉线,移动鼠标将十字线的交叉点移动到适当的位置,点击鼠标左键,gtext参数中的字符串就标注在该位置上.
4)给图形加网格:grid函数
在调用时直接写grid即可.
上面的函数的应用实例:
例:在图形中加注坐标轴标识和标题及在图形中的任意位置加入文本.
t=0:pi/100:2*pi;
y=sin(t);
plot(t,y),grid,
axis([0 2*pi -1 1])
xlabel('0 leq itt rm leq pi','FontSize',16)
ylabel('sin(t)','FontSize',20)
title('正弦函数图形','FontName','隶书' ,'FontSize',20)
text(pi,sin(pi),'leftarrowsin(t)=0','FontSize',16)
text(3*pi/4,sin(3*pi/4),'leftarrowsin(t)=0.707', 'FontSize',16)
text(5*pi/4,sin(5*pi/4),' sin(t)=-0.707rightarrow',...
'FontSize',16,'HorizontalAlignment','right')
5)在图形中添加图例框:legend函数
其调用格式为:
A.legend('字符串1', '字符串2', ……)------以字符串1,字符串2…… 作为图形标注的图例.
B.legend('字符串1', '字符串2', ……, pos)------pos指定图例框显示的位置.
图例框被预定了6个显示位置:
0------取最佳位置;
1------右上角(缺省值);
2------左上角;
3------左下角;
4------右下角;
-1------图的右侧.
例:在图形中添加图例.
x=0:pi/10:2*pi;
y1=sin(x);
y2=0.6*sin(x);
y3=0.3*sin(x);
plot(x,y1,x,y2,'-o',x,y3,'-*')
legend('曲线1','曲线2','曲线3')
6)用鼠标点选屏幕上的点:ginput函数
格式为:[x, y, button]=ginput(n)
其中:n为所选择点的个数;x,y均为向量,x为所选n个点的横坐标;y为所选n个点的纵坐标.button为n维向量,是所选n个点所对应的鼠标键的标号:
1------左键;
2------中键;
3------右键.
可用不同的鼠标键来选点,以区别所选的点.此语句可以放在绘图语句之后,它可在绘出的图形上操作,选择你所感
兴趣的点,如峰值点,达到稳态值的点等,给出点的坐标,可求出系统的性能指标.
第四节 MATLAB下图形对象的修改
MATLAB图形对象是指图形系统中最基本,最底层的单元,这些对象包括:
屏幕(Root),图形窗口(Figures),坐标轴(Axes),控件(Uicontrol),菜单(Uimenu),线(Lines),块(Patches),面(Surface),图像(Images),文本(Text)等等.根据各对象的相互关系,可以构成如下所示的树状层次:
Root
Figures
Axes Uicontrol Uimenu Uicontextmenu (对象菜单)
Images Line Patch Surface Text
对各种图形对象进行修改和控制,要使用MATLAB的图形对象句柄 (Handle).在MATLAB中,每个图形对象创立时,就被赋予了唯一的标识,这个标识就是该对象的句柄.句柄的值可以是一个数,也可以是一个矢量.如每个计算机的根对象只有一个,它的句柄总是0,图形窗口的句柄总是正整数,它标识了图形窗口的序号等.利用句柄可以操纵一个已经存在的图形对象的属性,特别是对指定图形对象句柄的操作不会影响同时存在的其它图形对象,这一点是非常重要的.
一.对图形对象的修改可以用下面函数:
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:获得当前对象的句柄.
如:
A.要对图形窗口的底色进行修改,可用:
set(gcf, 'Color', [1,1,1])------将图形窗口底色设为白色
B.要把当前X轴的颜色改为绿色,可用:
set(gca, 'Xcolor', [0,1,0])
C.还可对坐标轴的显示刻度进行定义:
t=-pi:pi/20:pi;
y=sin(t);
plot(t,y)
set(gca,'xtick',[-pi:pi/2:pi],'xticklabel',['-pi','-pi/2','0','pi/2','pi'])
本例中用'xtick'属性设置x轴刻度的位置(从-pi~pi,间隔pi/2,共设置5个点),用'xticklabel'来指定刻度的值,由于通常习惯于用角度度量三角函数,因此重新设置['-pi','-pi/2','0','pi/2','pi']5个刻度值.
二.一些常用的属性如下:
1)Box属性:决定图形坐标轴是否为方框形式,选项为'on'(有方框), 'off'(无方框);
2)'ColorOrder'属性:设置多条曲线的颜色顺序,默认值为:
[1 1 0;1 0 1;0 1 1;1 0 0;0 1 0;0 0 1]
黄色 粉色 天蓝 红色 绿色 兰色
颜色向量还有:[1 1 1]------白色;[0 0 0]------黑色.
3)坐标轴方向属性:'Xdir','Ydir','Zdir',其选项为:
'normal'------正常
'reverse'------反向
4)坐标轴颜色和线型属性:'Xcolor','Ycolor','Zcolor'------ 轴颜色, 值为颜色向量
如何在画好曲线后 再在图上标刻度
就是想在一些特定的点边上标上一串30.60.90~7200 递增的数据,共有96个点要标!!
im = imread(url);
imshow(im)
然后输入:
text(100,100,'\o ','Color','red');
matlab,用imread读入一个图片,我想在图上的一些坐标点上做标记。比如把图上坐标值为(100,100)的点用红圈注出来。具体用什么命令语句实现呢
用subplot在一个图象窗口中作下列四条曲线,并为每幅图形加上标题:
1) 概率曲线y=e^(-x^2)
2) 四叶玫瑰线 ρ=sin2θ
3) 叶形线x=3t/(1+t^3)
y=3t^2/(1+t^3)
4)摆线x=a(t-sint), y=a(1-cost), t∈[0,2π]。
5)坐标轴的标尺属性:'Xtick','Ytick','Ztick'------ 标度的位置,值为 向量
'Xticklabel','Yticklabel','Zticklabel'------ 轴上标度的符号,它的值为与标度位置向量同样大小(向量个数相同)的向量.
5)字体设置属性:'FontAngle'------ 设置字体角度,选项为:
'normal'------ 正常;
'italic'------ 斜体;
'oblique'------ 倾斜;
'FontName'------ 字体名称;
'FontSize'------ 字号大小
'FontWeight'------ 字体的轻重,选项为:'light',
'normal','bold'
x=1:8;
subplot(2,2,1)
plot(x)
%tick style 0(auto)
subplot(2,2,2)
plot(x)
set(gca,'xtick',[1 3 6 8]);%style 1
set(gca,'ytick',[]);%style 2
subplot(2,2,3)
plot(x)
set(gca,'xtick',[1 3 6 8]);
set(gca,'xticklabel',sprintf('%03.4f|',get(gca,'xtick')));%style 3
set(gca,'ytick',[2 4 5 7]);
set(gca,'yticklabel',{'Two','Four','Five','Seven'});%style 4
subplot(2,2,4)
plot(x)
set(gca,'xminortick','on');%style 5
set(gca,'ticklength',[0.05 0.025]);%style 6
set(gca,'tickdir','out');%style 7
另附Maltab坐标调整程序一段:
x=20:10:20000;
y=rand(size(x));
semilogx(x,y);
set(gca,'XLim',[20 20000]);
set(gca,'XMinorTick','off');
set(gca,'XTick',[20 31.5 63 125 250 500 1000 2000 4000 8000 16000]);
set(gca,'XGrid','on');
set(gca,'XMinorGrid','off');
来自:
http://hi.baidu.com/cgn2009/blog ... 08dfdf9023d971.html