我想在下面的图中在每个峰的顶部画一个圆标记:
我用下面的代码实现了这一点:
data = mzcdfread('sample1.cdf');
[pks,locs,w,p] = findpeaks(data.ordinate_values)
plot(data.ordinate_values)
哪里
locs
返回每个峰值顶部的x
值,pks
返回每个峰值的y
值。下面是locs
和pks
的示例:
pks =
10×1 single column vector
0.6649
0.7314
0.7536
1.3797
0.2394
0.4322
0.2090
0.5402
0.6797
0.3059
locs =
1199
2399
3599
4799
5999
7199
8399
9599
10799
11999
这就是我试图在每个峰的顶部画一个圆圈标记,但它不起作用:
% r as radius
r = 0.2
ang=0:0.01:2*pi;
xp=r*cos(ang);
yp=r*sin(ang);
plot(data.ordinate_values, locs+xp, pks+yp)
发布于 2020-10-17 13:53:45
您应该使用带有'Marker'
选项的传统plot()
内置函数来绘制圆:
plot(locs, pks, 'Marker', 'o');
您还可以设置圆形标记的大小和颜色:
plot(locs,pks,...
'Color', 'r',...
'Marker', 'o',...
'MarkerSize', 14);
这意味着由data.ordinate_values
给出的曲线和每个峰值处的圆是分开绘制的。因此,您需要在两个plot命令之间(或在初始化图形时)使用hold on
。
figure;
plot(data.ordinate_values);
hold on;
plot(locs,pks,...
'Color', 'r',...
'Marker', 'o',...
'MarkerSize', 14);
https://stackoverflow.com/questions/64402854
复制相似问题