2

我有一个带有 3 个轴组件的 Matlab GUI。它们的标签是predicted_ax和。我想在第一个轴组件(带有 tag 的那个)的特定位置绘制垂直线。我怎么做?cost_axerror_axpredicted_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。那么如何在右轴上画线呢?

4

2 回答 2

3

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

h = line([linePos, linePos], ylim);
set(h, 'parent', handles.predicted_ax);
于 2012-07-18T22:17:56.273 回答
1

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

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

于 2012-07-18T22:17:05.813 回答