网站首页 > 技术文章 正文
前面有一章介绍了MATLAB在一张图片中用不同颜色绘制多条曲线的几个方法。今天我们再介绍一下在画图时使用不同的线型、点及标记等。
一、 线型、连续标记
先从最普通的说起。在plot函数中指定线型。
t=linspace(0,5,20);
x1 = t;
x2 = 2*t;
x3 = 3*t;
x4 = 4*t;
plot(t,x1,'b',t,x2,'g-o',t,x3,'r*',t,x4,'c:d');
这是基础的比较简单的情况。不做太多叙述。matlab提供的线型、颜色和标记符如下表:
如果指定了标记符号但未指定线型,则 plot仅显示无线条连接的标记。
A = 1;
f= 1;
x1 = A * sin(2*pi*f*t)./t;
x2 = A * cos(2*pi*f*t-pi/2)./t;
plot(t,x1,'bo',t,x2,'r*');
可以通过名称-值对组参数来设置标记属性,自定义标记。
- MarkerSize
- - 标记大小,指定为正值。
- MarkerEdgeColor
- - 标记轮廓颜色,指定为颜色名称或 RGB 三元组。
- MarkerFaceColor
- - 标记内部颜色,指定为颜色名称或 RGB 三元组。
t=linspace(0,5,120);
A = 1;
f= 0.2;
x1 = exp(t/10).*sin(4*2*pi*f*t);
plot(t,x1,'b--d','MarkerSize',9,'MarkerEdgeColor','red','MarkerFaceColor',[1 0.6 0.5])
二、在指定位置做标记
如果需要在特定的点做标记,可以使用MarkerIndices(要显示标记的数据点的索引)设置。
1、比如从第一个数据点开始,每隔十个数据点显示一个标记。则可设置plot(x,y,'-*','MarkerIndices',1:10:length(y))。
2、假如在最小数据值和最大数据值处显示红色标记。首先找到最大最小值。
idxmin = find(y == max(y));
idxmax = find(y == min(y));
然后设置 plot(x,y,'-d','MarkerIndices',[idxmin idxmax]).
同理,我们可以使用MarkerIndices属性设置需要做标记的指定位置。
plot(x,y,'-d','MarkerIndices',[1 10 18 32]).
注意:MarkerIndices是MATLAB R2016b及之后版本才有的。
3、plot函数中直接指定横竖坐标
t=linspace(0,5,120);
A = 1;
f= 0.2;
x1 = exp(t/10).*sin(4*2*pi*f*t);
plot(t,x1,t(40),x1(40),'rp',t(75),x1(75),'k*');
4、text添加文字说明
t=linspace(0,5,100);
A = 1;
f= 1;
x1 = A * sin(2*pi*f*t)./t;
plot(t,x1,'b-.',t(6),x1(6),'rp',t(60),x1(60),'md');
text(t(6),x1(6),[ ' \leftarrow' 'P(' num2str(t(6)) ',' num2str(x1(6)) ')' ]);
还可以设置说明颜色。
text(t(6),x1(6),[ ' \leftarrow' 'P(' num2str(t(6)) ',' num2str(x1(6)) ')' ],'color','r');
还可以使用gtext,gtext('输入内容'),然后在图片上点击鼠标确定标记位置。
5、annotation()函数
annotation(lineType,x,y) 创建一个在当前图窗中的两个点之间延伸的线条或箭头注释。将 lineType 指定为 'line'、'arrow'、'doublearrow' 或 'textarrow'。将 x 和 y 分别指定为 [x_begin x_end] 和 [y_begin y_end] 形式的二元素向量。
比如 annotation('textarrow',x,y) % 坐标x,y是标准化的坐标,其取值在 0~1之间,整个figure窗口左下角为(0, 0),右上角为(1, 1)。
close all;
t=linspace(0,5,100);
A = 1;
f= 1;
x1 = A * sin(2*pi*f*t)./t;
x2= A * sin(2*pi*0.5*t)./t;
plot(t,x1,'r',t,x2,'g');
a = [0.3 0.17];
b = [0.75 0.7];
annotation('textarrow',a,b,'String','f = 1 ');
annotation('textarrow',[0.35 0.25],[0.5 0.39],'String',' f = 0.5 ');
设置图窗添加矩形注释。annotation('rectangle',[x y w h])% 建立矩形注释对象。
figure
data = [2 4 6 7 8 7 5 2];
stem(data)
dim = [.3 .68 .2 .2];
annotation('rectangle',dim,'Color','red')
谢谢查看!
猜你喜欢
- 2024-10-24 窗口快速切换利器 AltTab 3.22.6中文版
- 2024-10-24 这样上班玩游戏老板都只会夸:5个常用组合键你同事都会用!
- 2024-10-24 窗口快速切换利器AltTab for Mac 3.11.0中文版
- 2024-10-24 这些强大的快捷键,学会你就是公司最早下班的仔!
- 2024-10-24 Altium Design 快捷键(altium designer操作快捷键)
- 2024-10-24 同创双子IT小技巧分享:PPT超实用看快捷键分享,赶紧收藏吧
- 2024-10-24 一个方便的 Windows 10 技巧,让多任务处理变得更容易
- 2024-10-24 css3制作网页中常见的小箭头(html5如何弄箭头)
- 2024-10-24 电脑键盘操作技巧——Windows键或CTRL
- 2024-10-24 窗口快速切换利器AltTab 3.17.0 Mac中文版
- 11-26Win7\8\10下一条cmd命令可查得笔记本电脑连接过的Wifi密码
- 11-26一文搞懂MySQL行锁、表锁、间隙锁详解
- 11-26电脑的wifi密码忘记了?一招教你如何找回密码,简单明了,快收藏
- 11-26代码解决忘记密码问题 教你用CMD命令查看所有连接过的WIFI密码
- 11-26CMD命令提示符能干嘛?这些功能你都知道吗?
- 11-26性能测试之慢sql分析
- 11-26论渗透信息收集的重要性
- 11-26如何查看电脑连接过的所有WiFi密码
- 最近发表
- 标签列表
-
- cmd/c (57)
- c++中::是什么意思 (57)
- sqlset (59)
- ps可以打开pdf格式吗 (58)
- phprequire_once (61)
- localstorage.removeitem (74)
- routermode (59)
- vector线程安全吗 (70)
- & (66)
- java (73)
- org.redisson (64)
- log.warn (60)
- cannotinstantiatethetype (62)
- js数组插入 (83)
- resttemplateokhttp (59)
- gormwherein (64)
- linux删除一个文件夹 (65)
- mac安装java (72)
- reader.onload (61)
- outofmemoryerror是什么意思 (64)
- flask文件上传 (63)
- eacces (67)
- 查看mysql是否启动 (70)
- java是值传递还是引用传递 (58)
- 无效的列索引 (74)