Matlab 图中带有文本的垂直线

Vertical lines with text in Matlab plot

我在 Matlab 中创建了一个绘图。为简单起见,我们假设我有以下情节:

x = 0:pi/100:2*pi;
y = sin(x);
plot(x,y)

现在我想在位置 x = 1、x = 3 和 x = 5 处添加垂直线(从图的底部到顶部)。此外,垂直线应该有文本(在线或线的顶部)。例如,对于 x = 1 处的行,我想要文本 "test 1".

如何做到这一点?这在 Matlab 中似乎是一件相当棘手的事情。

for i=1:2:5

hold on 

plot([i i],[0 1])

s=sprintf('test%1.0f', i)

t=text(i,1,s)

set(t,'Rotation',90)

end

这里有一些画线的方法:

x = 0:pi/100:2*pi;
y = sin(x);
plot(x,y,[1 1],[-1 1],[3 3],[-1 1],[5 5],[-1 1]);

x = 0:pi/100:2*pi;
y = sin(x);
plot(x,y); hold on;
for ind1 = 1:2:5
  line([ind1 ind1],[min(y) max(y)],'Color',[0 0 0]);
end

x = 0:pi/100:2*pi;
y = sin(x);
A = zeros(6); A(sub2ind(size(A),1:6,[2 1 4 3 6 5])) = 1;
plot(x,y); hold on; gplot(A, [repelem(1:2:5,1,2).', reshape(repelem([1 -1],3,1).',[],1)]);

等等

要么使用 hold on 并在多个命令中绘图,要么立即向 plot 函数提供所有输入以获得所需的结果。有关详细信息,请参阅上述功能的文档。

文本参考text