matlab折线图标记_MATLAB画图使⽤不同的线型、点及标记前⾯有⼀章介绍了MATLAB在⼀张图⽚中⽤不同颜⾊绘制多条曲线的⼏个⽅法。今天我们再介绍⼀下在画图时使⽤不同的线型、点及标记等。
⼀、 线型、连续标记
先从最普通的说起。在plot函数中指定线型。
t=linspace(0,5,20);
x1 = t;
x2 = 2*t;
如何用matlab将已知点连线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 ');

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。