从MATLAB图中删除点和线

时间:2011-12-20 11:58:11

标签: matlab plot line handle

我有一个用户可以点击进入的图。点击的坐标将存储在两个向量x和y中。比我通过plot(x_new, y_new)绘制新创建的点,并且还有一个为此点创建的上下文,其中有一个标签delete point。当点击它时,我只是删除了{{的相应值。 1}}和x向量。

现在我需要以某种方式删除绘制的点。目前我这样做:当删除点时,我只需清除当前轴y并立即重绘所有点。但不知怎的,我觉得这不是最好的方法,因为我想在用户输入的点之间显示文本和一些连接线,并且当每次需要重新绘制所有东西时,它可能变得非常慢......

所以我想知道最好的方法是什么? 简单地存储每个点的返回绘图句柄并且在删除点时删除这些对象会不会很好?连接线和文本相同吗?

谢谢!

2 个答案:

答案 0 :(得分:5)

您可以使用XDataYData属性直接操作线条的基础数据。

删除索引idx处的点:

XData = get(h_line, 'XData');
YData = get(h_line, 'YData');
XData(idx) = [];
YData(idx) = [];
set(h_line, 'XData', XData, 'YData', YData);

答案 1 :(得分:1)

还有另一个选项,使用“refreshdata”,但我不喜欢它,因为它慢得多并且会产生丑陋的代码。 所以我投票+1 @Nzbuu解决方案,但如果它感兴趣的话我添加这个