MATLAB中绘制箱线图时GUI中的坐标轴重叠问题

4
我正在使用MATLAB中的GUIDE创建GUI。我有几个轴,在其中一个轴中,我想绘制一个箱线图。我的问题是,在绘制完箱线图后,轴的大小会发生变化,并且会与某些其他图形重叠。
要复制此问题,请使用GUIDE创建.fig文件,其中包含两个轴:axes1和axes2,如下图所示:Example of .fig with two axes
然后,在OpeningFcn中添加以下行:
Z = normrnd(1,3,[100,1]);
plot(handles.axes1, Z);
boxplot(handles.axes2,Z)

然后启动图形用户界面(GUI),我看到以下内容:

启动程序时的GUI

如您所见,这两个轴重叠在一起。我尝试改变箱线图的属性,但没有成功。

我使用的是MATLAB 7.10 (R2010a)和Kubuntu 12.10。

1个回答

7

看起来 boxplot 会使坐标轴变宽,不确定原因。无论如何,在绘图之前保存坐标轴位置,并在绘图后重置似乎对我有效:

Z = normrnd(1,3,[100,1]);
plot(handles.axes1, Z);
pos = get(handles.axes2, 'position');
boxplot(handles.axes2,Z);
set(handles.axes2, 'position', pos);

欢呼,Giuseppe

谢谢。虽然它没有解释为什么箱线图会改变我的坐标轴位置,但它确实起作用了,所以我想那就够了 :) - Digna
boxplot是一个复杂的高级命令(超过4000行代码!)。虽然我通常不喜欢这种类型的解决方法,但在这种情况下,我会尝试并查看是否会出现其他问题。干杯 - Giuseppe

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接