在绘制后删除线段很困难。您可以通过以下代码看到该行由一个 MATLAB 对象组成:
x = 1:10;
y = 1:10;
H = plot(x, y, '-o');
get(H, 'children')
ans =
空矩阵:0×1
我们可以看到该行没有子行,因此没有可以删除的“子部分”。但是,我们可以使用一些厚颜无耻的技巧来尝试达到相同的效果。
分别绘制两条线
...使用hold on。见维克多雨果的回答。这是实现我们目标的正确方法。
将两条单独的线合二为一
MATLAB 不会用 NaN 值绘制点。通过修改输入向量,可以让 MATLAB 跳过一个点,给出折线的效果:
x = [0 1 2 2 3 4 5 6 7 8 9];
y = [0 1 2 nan 3 4 5 6 7 8 9];
plot(x, y, '-o');
这相当于从 [0, 0] 到 [2, 2] 绘制一条线,跳过下一个点,然后从 [3, 3] 重新开始并继续到 [9, 9]。
“擦除”部分行
这是最讨厌的方法,但如果您不介意更改输入数组,这是一种廉价的技巧。先画线:
x = 1:10; y = 1:10;
plot(x, y, '-o');
现在在要擦除的部分上画一条白线:
hold on
plot([2 3], [2 3], 'w');
如您所见,结果看起来不太正确,如果您尝试对图表执行其他操作,结果会很糟糕。简而言之,我不会推荐这种方法,但它可能会在绝望的时候派上用场!