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
。
我在 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
。