我想在某个“x”(标量)值处绘制一条线,因此每秒都会绘制一条具有特定值的垂直线。我知道绘制垂直线(不考虑时间)的一种方法是声明一个向量,例如:
y=0:0.01:5;
或类似的东西:
y=3:0.01:6;
并编写plot(x,y);
此外,我已经使用“暂停”参数完成了“动画”绘图,但我不知道在这种情况下该怎么做。感谢您的帮助。
最佳答案
我建议的另一种方法是将 plot
与 hold on
结合使用。使用 plot
,您只需指定两个点,每个点具有相同的 x
值,但 y
值可以更改为您想要的任何值.当您使用 plot
绘制点时,默认行为是在点之间绘制一条线。如果我们指定具有相同 x
坐标但不同 y
坐标的两个点,我们基本上会在这些点之间绘制一条垂直线。
例如,假设你想让每一“秒”都有一条垂直线,我们可以这样做:
ystart = [-1 -2 -3 -1 -2 -3];
yend = [1 2 3 1 2 3];
figure; hold on;
for idx = 1 : numel(ystart)
plot([idx idx], [ystart(idx) yend(idx)]);
end
这是我们得到的:
我们定义了两个包含 6 个元素的数组,其中 ystart
表示起始 y
点,yend
表示结束 y
点。我们生成一个新图形,使用 hold on
在同一个图形上绘制多条线,然后使用 for
循环和 plot
以便我们绘制两点之间的一条线:(x,y) = (idx, ystart(idx))
和 (x,y) = (idx, yend(idx))
. idx
从 1 到 6。显然,您可以通过指定另一个数组来更改绘制 x
值的位置...称它为 x
:
x = 0:2:10; %// Time values
ystart = [-1 -2 -3 -1 -2 -3];
yend = [1 2 3 1 2 3];
figure; hold on;
for idx = 1 : numel(ystart)
plot([x(idx) x(idx)], [ystart(idx) yend(idx)]);
end
在这里,我们将绘制从 x = 0
到 x = 10
的垂直线,步长为 2。结果基本相同,但是 x
值会不同,垂直线的绘制位置也会不同。
关于matlab - 在特定时间绘制垂直线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28389997/