如何在Matlab GUI中绘制轴上的垂直线?

时间:2012-07-18 22:10:50

标签: matlab user-interface drawing matlab-guide axes

我有一个带有3轴组件的Matlab GUI。他们的标签是predicted_axcost_axerror_ax。我想在第一个轴组件(带有标签predicted_ax的那个)上的特定位置上绘制垂直线。我该怎么做?

我试过这段代码:

ylim = get(handles.predicted_ax, 'ylim');
line([linePos, linePos], ylim);

但是它在不同的轴上绘制线条(带有标记error_ax的线条)!我确信我没有混淆标签或轴组件。事实上另一个测试

ylim = get(handles.cost_ax, 'ylim');
line([linePos, linePos], ylim);

给出完全相同的结果:在标记为error_ax的最后一个轴组件上绘制线条。那么如何在右轴上绘制线条呢?

2 个答案:

答案 0 :(得分:3)

您需要设置该行的“parent”属性,因为默认情况下它始终是当前轴:

h = line([linePos, linePos], ylim);
set(h, 'parent', handles.predicted_ax);

答案 1 :(得分:1)

我认为你需要使用axes命令来设置绘制直线的当前轴。在axes(handles.predicted_ax);命令之前尝试line

(获取轴的ylim值显然不会使其成为当前值。)

相关问题