无法在Matlab GUI中显示带有网格的2个图形

时间:2014-06-27 16:00:45

标签: matlab user-interface grid

我在Matlab中制作GUI。这是我的代码示例

function plotResults(handles)

% Create output data plot in proper axes
plot(handles.outputAxes, handles.outputCurrentData, handles.outputVoltageData,'.-')
set(handles.outputAxes, 'XMinorTick', 'on')
grid on

% Create magnet data plot in proper axes
plot(handles.magnetAxes, handles.magnetCurrentData, handles.magnetVoltageData, '.-')
set(handles.magnetAxes, 'XMinorTick', 'on')
grid on

但是,只有第二轴显示网格,第一轴没有。谁能告诉我为什么?感谢

1 个答案:

答案 0 :(得分:1)

这是一种奇特的行为。我能够使用简单的GUI重现它,无论我如何订购上述代码(outputAxes之前的magnetAxes),它始终是显示网格的magnetAxes,另一个是它被删除了(可能是因为我添加了magentAxes小部件第二个?)。

grid on语句仅打开当前轴的网格,这可能是他混淆的一部分 - magnetAxis具有“焦点”,因此它会更新网格,而另一个不,因为它永远不会设置为当前轴。

两个解决方案如下 - 指定您希望启用网格的轴

grid(handles.outputAxes,'on');  % replace grid on with this for the first axis
grid(handles.magnetAxes,'on');  % replace grid on with this for the second axis

或完全删除grid on语句,然后执行

set(handles.outputAxes, 'XMinorTick', 'on','XGrid','on','YGrid','on');
set(handles.magnetAxes, 'XMinorTick', 'on','XGrid','on','YGrid','on');

第三种选择是在调用grid on之前手动设置当前轴(即axes(handles.outputAxes);)。