【发布时间】:2014-08-22 01:15:20
【问题描述】:
我有一个令人不安的问题,我已经尝试解决了很长一段时间,但我不知道为什么会发生这种情况。我有一个自编码的 GUI,我在主 GUI 图上有一个面板。在此面板上,我有一个轴,每当我在该轴上绘制条形图并尝试使用 yLim() 或 axis() 编辑其视图时,轴将调整为我想要的尺寸,但条形图不会在轴的边缘切掉,它会继续从页面上跑出来。在调试模式下玩了一段时间后,我发现如果我将轴的父级从面板更改为主图,条形图将正确显示轴边框内的内容,就像我想要的那样它到。我不想使用更改轴的父级作为永久解决方案,因为我有几个不同的面板我想在主图而不是面板上使用轴,但我想知道如果有人知道为什么会发生这种情况以及我该如何解决。
例如,这段代码产生了我遇到的问题:
mainFig = figure('Units','characters',...
'Position',[40 5 200 50],...
'Color',[100/255 145/255 209/255]);
axesPanel = uipanel('bordertype','etchedin',...
'Parent',mainFig,...
'Title','Axes Panel');
mainAxes = axes('parent',axesPanel,...
'Units','characters');
bar(mainAxes,1:10,1:10)
ylim(mainAxes,[6 10])
如果将轴的父级更改为图形,则不存在问题。这行代码就是这样做的:
set(mainAxes,'parent',mainFig)
感谢您提供有关为什么会发生这种情况的任何帮助或信息!
【问题讨论】:
-
您最好向 Mathworks 提交技术支持请求。这似乎是
bar实现中的一个问题,因为当您将bar替换为基本plot时没有问题。比较 ylim 和 parent 调整前后的属性时,没有任何异常。 -
是的,我开始认为这是我无法控制的 MATLAB 端的问题,所以我将提交技术支持请求,但我真的希望会有一个让它在面板上工作的方法,而不必找到其他方式来表示我的数据。