我有一个带有3轴组件的Matlab GUI。他们的标签是predicted_ax
,cost_ax
和error_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
的最后一个轴组件上绘制线条。那么如何在右轴上绘制线条呢?
答案 0 :(得分:3)
您需要设置该行的“parent”属性,因为默认情况下它始终是当前轴:
h = line([linePos, linePos], ylim);
set(h, 'parent', handles.predicted_ax);
答案 1 :(得分:1)
我认为你需要使用axes
命令来设置绘制直线的当前轴。在axes(handles.predicted_ax);
命令之前尝试line
。
(获取轴的ylim
值显然不会使其成为当前值。)