matlab - 在特定时间绘制垂直线

标签 matlab plot

我想在某个“x”(标量)值处绘制一条线,因此每秒都会绘制一条具有特定值的垂直线。我知道绘制垂直线(不考虑时间)的一种方法是声明一个向量,例如:

y=0:0.01:5;

或类似的东西:

y=3:0.01:6;

并编写plot(x,y);

此外,我已经使用“暂停”参数完成了“动画”绘图,但我不知道在这种情况下该怎么做。感谢您的帮助。

最佳答案

我建议的另一种方法是将 plothold 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

这是我们得到的:

enter image description here

我们定义了两个包含 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 = 0x = 10 的垂直线,步长为 2。结果基本相同,但是 x 值会不同,垂直线的绘制位置也会不同。

关于matlab - 在特定时间绘制垂直线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28389997/

相关文章:

r - 绘制没有插值的 3D 表面?

r - 如何使用多行文本在分组条形图的条形上添加值?

python - 是否可以将 Python Seaborn 与 plotly 集成

php - 我可以在网站上运行 MATLAB 代码吗?

java - MATLAB:如何在 MATLAB 中使用 java 代码?

dynamic-typing - Matlab:为什么是 '1' + 1 == 50?

python - 类似于 MATLAB 的 python 切片

C++ - MATLAB : updating a Sparse Matrix blockwise

Python Mayavi : Adding points to a 3d scatter plot

r - 在 R 中一口气针对不同图中的一个特定列绘制数据框的所有列