如何确保子图上的所有Y轴具有相同的值

时间:2013-03-25 07:58:48

标签: matlab

这是我面临的问题。我有代码,它构建了一些条形图。

为了更好地比较它们,我需要它们具有相同的比例。看看doc栏,我无法找到如何指定条形图具有特定的最大高度。

所以在我的例子中,例如我有以下代码:

c = [0 0 12 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0];
e = [0 2 5 6 5 2 0 0 0 0 0 0 0 0 0 0 0 0 0];
f = [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 19];
b = [0 9 7 0 0 1 0 1 0 1 1 0 0 0 0 0 0 0 0];

subplot(2,2,1)
bar(b)
subplot(2,2,2)
bar(e)
subplot(2,2,3)
bar(f)
subplot(2,2,4)
bar(c)

第一个子图的高度为10,而不是6,而不是15。

是否有一种简单的方法可以让所有人的最大身高都达到20。

2 个答案:

答案 0 :(得分:7)

您可以使用linkaxes命令:

h(1) = subplot(2,2,1)
bar(b)
h(2) = subplot(2,2,2)
bar(e)
h(3) = subplot(2,2,3)
bar(f)
h(4) = subplot(2,2,4)
bar(c)

linkaxes(h)
ylim([0 20])

答案 1 :(得分:5)

您可以使用set命令和轴的手柄(=标识符)轻松更改轴属性。如果您尚未存储轴手柄(subplot的第一个输出),则首先必须找到它们:

%# collect axes handles
axH = findall(gcf,'type','axes');

%# set the y-limits of all axes (see axes properties for 
%# more customization possibilities)
set(axH,'ylim',[0 20])