我在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
但是,只有第二轴显示网格,第一轴没有。谁能告诉我为什么?感谢
答案 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);
)。