如何在给定的地方画圆圈?
How to draw circles in given places?
我想在下图中每个峰的顶部绘制一个圆形标记:
我用下面的代码实现了这个:
data = mzcdfread('sample1.cdf');
[pks,locs,w,p] = findpeaks(data.ordinate_values)
plot(data.ordinate_values)
哪里
locs
returns 每个峰顶部的 x
值和 pks
returns 每个峰的 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)
你应该使用 Matlab 的常规 plot()
built-in 函数和 'Marker'
选项来绘制圆:
plot(locs, pks, 'Marker', 'o');
您还可以设置圆形标记的大小和颜色:
plot(locs,pks,...
'Color', 'r',...
'Marker', 'o',...
'MarkerSize', 14);
这意味着 data.ordinate_values
给出的曲线和每个峰值处的圆圈是单独绘制的。因此,您需要在两个绘图命令之间(或初始化图形时)使用 hold on
。
figure;
plot(data.ordinate_values);
hold on;
plot(locs,pks,...
'Color', 'r',...
'Marker', 'o',...
'MarkerSize', 14);
我想在下图中每个峰的顶部绘制一个圆形标记:
我用下面的代码实现了这个:
data = mzcdfread('sample1.cdf');
[pks,locs,w,p] = findpeaks(data.ordinate_values)
plot(data.ordinate_values)
哪里
locs
returns 每个峰顶部的 x
值和 pks
returns 每个峰的 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)
你应该使用 Matlab 的常规 plot()
built-in 函数和 'Marker'
选项来绘制圆:
plot(locs, pks, 'Marker', 'o');
您还可以设置圆形标记的大小和颜色:
plot(locs,pks,...
'Color', 'r',...
'Marker', 'o',...
'MarkerSize', 14);
这意味着 data.ordinate_values
给出的曲线和每个峰值处的圆圈是单独绘制的。因此,您需要在两个绘图命令之间(或初始化图形时)使用 hold on
。
figure;
plot(data.ordinate_values);
hold on;
plot(locs,pks,...
'Color', 'r',...
'Marker', 'o',...
'MarkerSize', 14);