MATLAB图形加标注的基本方法入门简介

一、引言

Matlab绘图时,为了让图形窗口中的图元看着清晰明了,往往需要增加一写标注,例如“标题”、“图例”、“图元符号表示”、“坐标轴标签”等,本文针对上述标注方法逐一进行举例说明。

二、为图形添加标题

函数及语法:
title( ‘字符串’, ‘属性名’, 属性值, … )
例1:绘制心形曲线,并加标题

theta = [ 0 : 0.01 : 2 ] * pi;
x = ( 1 - cos(theta)) .* cos(theta);
y = ( 1 - cos(theta)) .* sin(theta);
rotationM = [ 0, -1; 1, 0 ];
A = rotationM * [ x; y ];%逆时针旋转90°
x = A( 1, : );
y = A( 2, : );
plot( x, y )
axis square
title( 'Heart Curve' )

图形如下图:
在这里插入图片描述

三、为图形添加图例

函数及语法:
legend( 字符串1, 字符串2, 字符串3,…, 位置pos )
pos的取值为
0自动把图例放到最佳位置,即和曲线重复最少的位置;
1至于图形的右上角;(此为缺省值)
2至于图形的左上角;
3至于图形的左下角;
4至于图形的右下角;
-1,至于图形的右侧外部。
注意:不同的版本,pos的用法法可能不同,需要注意,例如通过使用属性“Location”的值来确定位置,取值有19种之多。
代码如下:
例2:在一个图形窗口绘制正弦曲线和余弦曲线,并添加图例
代码如下:

x=0:0.1:2*pi;
plot(x,sin(x),'*r');
hold on;plot(x,cos(x),'-b');
legend('y=sin(x)','y=cos(x)',-1 )
%legend('y=sin(x)','y=cos(x)','Location', 'northeastoutside' )
title('trigonmetric Function');

运行结果:
在这里插入图片描述

四、为图形添加坐标轴标签

函数及语法:
xlabel( ‘x’ )%x轴标签
ylabel( ‘y’ )%y轴标签
zlabel( ‘z’ )%z轴标签,三维图形使用
也有更复杂的参数,详解下面例4.
例3:在一个图形窗口绘制正弦曲线和余弦曲线,并添加图例、标题
代码如下:

x=0:0.1:2*pi;
plot(x,sin(x),'*r');
hold on;plot(x,cos(x),'-b');
%legend('y=sin(x)','y=cos(x)',-1 )
legend('y=sin(x)','y=cos(x)','Location', 'northeastoutside' )
xlabel( 'x' )
ylabel( 'y' )
title('trigonmetric Function');

运行结果:
在这里插入图片描述
例4:绘制三维螺旋线
代码如下:

t=linspace(0,10*pi,501);
plot3(sin(t),cos(t),t)
xlabel('sin(t)','FontWeight','bold','fontAngle','italic');
ylabel('cos(t)','FontWeight','bold','fontAngle','italic');
zlabel('t','FontWeight','bold','fontAngle','italic');

运行结果:

在这里插入图片描述

五、为图形添加图元标识

text(x,y,’string’) 在图形的指定位置(x,y)增加标注string
gtext(‘string’) 在现有图上用鼠标放置标注
1)在图形窗口中增加字符串
例5:在一个图形窗口绘制正弦曲线和余弦曲线,并添加图元的标注
代码如下:

x=linspace(0,2*pi,30);
y=sin(x);
plot(x,y)
xlabel('自变量 X')
ylabel('函数 Y')
title('text与gtext示意图')
text(3.5,0.63,'y=sin(x)')
annotation('arrow',[0.5 0.42],[0.75 0.72],'LineStyle','-','color',[0 0 1]);
hold on
plot( x, cos(x), 'r' )
gtext('y=cos(x)')

运行结果:
在这里插入图片描述
2)在图形窗口中增加数值型数据,例如增加坐标点
例6:利用模拟退火算法求函数
在这里插入图片描述
的极小值。
代码如下:

clear all
clc
fun = @(x)x.^2 + 2*sin(3*x);%生成符号函数
x0 = 0;
lb = [];
ub = [];
opts = [];
[x, feval] = simulannealbnd( fun, x0, lb, ub, opts )%模拟退火求最优值
figure; 
fplot( fun ); %fplot可以直接对符号函数fun进行绘图
hold on
plot( x, feval, 'ro'); 
axisVec = [ '(', num2str(x), ' , ', num2str(feval), ')' ];%生成坐标点的字符串
text( x-1, feval-2, axisVec ); %在指定的坐标位置显示字符串数据
axis( [-5, 5, -5, 30] )
grid on

运行结果如下:
在这里插入图片描述

  • 36
    点赞
  • 288
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
如何在MATLAB中做出标签页的效果-test.m 刚才看到有会员朋友说matlab中控件少,math说ActiveX中多的是啊,于是我也就顺便打开ActiveX看看里面都有什么。突然看到个单词tabbed……难道这就是困扰我多日的标签页?(已经解决)遗憾的是不知道为什么在我这里这个Microsoft Tabbed Dialog Control 6.0(SP5)不能用,显示的错误是Error using--->feval。Error 类别未授权使用,所以我连预览也不能。哪位兄弟知道解决方法别忘了给我发个消息啊,言归正传,继续说标签页。到mathworks一搜,果然是有高人的。 关于标签页的制作给出了三种方法,第一种就不介绍给大家了,因为时间久远到现在改方法已经失效,但是也放在附件中供大家参考就是那个tab。第二种是让我眼前一亮的。使用方法是这样:首先建立一个figure,并在其中入一个Text控件,需要注意的是这个text控件所在的位置就是将来标签页所在的位置,然后将附件中的tabpanel2.6中的文件放到figure同目录下,然后在命令行输入 tabpanel,第一个参数是figure的名字,第二个参数是刚才入的text控件的tag。这时候等侯一下,会出现一个运行的figure和一个小面板,在面板上有几项分别是(从上到下从左到右)添标签、编辑标签、更新标签、当前标签前移、当前标签后移、设置、信息。这是点击第一个,就可以添标签页了,大家自己试试就明白了,然后可以设置标签的lable、尺寸、风格、排列、颜色……非常方便。如果点击编辑标签,出来一个新的GUIDE,别怀疑,就在上面添控件就可以了,添完保存然后回到这个小面板点击更新标签,刚才添的控件就出现了。大家可以试试。 第三种方法是用matlab的一个函数:tabdlg,但是这个函数的使用帮助在新版本中已经没有了,因为以后的版本中要改变这个函数,不过还是有个列子是用这个函数创建标签页的,附件中的tabgui.m就是对应的程序,直接运行就可以,典型的matlab风格。各位可以仿照程序的编写方法在它的基础上创建控件。 另外还有一种方法,就是我前一阵子写程序时用的,就是与JAVA混合编程。这个就比较麻烦了,对JAVA甚至C 一窍不通的就掠过吧。这其中涉及到了JAVA的布局、容器、框架等等。附件中的text.m是对应的文件。 总是抑制不住自己冲动的心情想把好玩的东西告诉别人。见谅。 前三种方法转自mathworks 与JAVA混合的方法转自仿真论坛。 本人无才只能跟风。
如何在MATLAB中做出标签页的效果-tabgui.m 刚才看到有会员朋友说matlab中控件少,math说ActiveX中多的是啊,于是我也就顺便打开ActiveX看看里面都有什么。突然看到个单词tabbed……难道这就是困扰我多日的标签页?(已经解决)遗憾的是不知道为什么在我这里这个Microsoft Tabbed Dialog Control 6.0(SP5)不能用,显示的错误是Error using--->feval。Error 类别未授权使用,所以我连预览也不能。哪位兄弟知道解决方法别忘了给我发个消息啊,言归正传,继续说标签页。到mathworks一搜,果然是有高人的。 关于标签页的制作给出了三种方法,第一种就不介绍给大家了,因为时间久远到现在改方法已经失效,但是也放在附件中供大家参考就是那个tab。第二种是让我眼前一亮的。使用方法是这样:首先建立一个figure,并在其中入一个Text控件,需要注意的是这个text控件所在的位置就是将来标签页所在的位置,然后将附件中的tabpanel2.6中的文件放到figure同目录下,然后在命令行输入 tabpanel,第一个参数是figure的名字,第二个参数是刚才入的text控件的tag。这时候等侯一下,会出现一个运行的figure和一个小面板,在面板上有几项分别是(从上到下从左到右)添标签、编辑标签、更新标签、当前标签前移、当前标签后移、设置、信息。这是点击第一个,就可以添标签页了,大家自己试试就明白了,然后可以设置标签的lable、尺寸、风格、排列、颜色……非常方便。如果点击编辑标签,出来一个新的GUIDE,别怀疑,就在上面添控件就可以了,添完保存然后回到这个小面板点击更新标签,刚才添的控件就出现了。大家可以试试。 第三种方法是用matlab的一个函数:tabdlg,但是这个函数的使用帮助在新版本中已经没有了,因为以后的版本中要改变这个函数,不过还是有个列子是用这个函数创建标签页的,附件中的tabgui.m就是对应的程序,直接运行就可以,典型的matlab风格。各位可以仿照程序的编写方法在它的基础上创建控件。 另外还有一种方法,就是我前一阵子写程序时用的,就是与JAVA混合编程。这个就比较麻烦了,对JAVA甚至C 一窍不通的就掠过吧。这其中涉及到了JAVA的布局、容器、框架等等。附件中的text.m是对应的文件。 总是抑制不住自己冲动的心情想把好玩的东西告诉别人。见谅。 前三种方法转自mathworks 与JAVA混合的方法转自仿真论坛。 本人无才只能跟风。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值