我想在Matlab中制作一个条形图,其中一个类别是“突破顶部”的轴,超过y轴限制,但我无法想象如何做到这一点。当我将上限更改为较低值时,栏会被卡车。
我该怎么办?
这是我的数据:
data =
115 116 97 99 107 NaN NaN NaN
111 118 101 114 102 108 111 119
我希望y轴上限为600.
以下是我的尝试:
bar(data,0.5,'stack')
ylim([0 600])
以下是结果的演示:
答案 0 :(得分:12)
一个简单的选项是将轴的clipping
属性设置为off
。
bar(data,'stack')
colormap('lines') % make it colorfull :)
bax = gca; % get axis handle
bax.Clipping = 'off';
bax.YLim(2) = 600; % set the upper limit
为了获得更好的效果,您可能还需要稍微缩小轴,因此该栏将保持在数字中。而且,没有拳击轴就更好了:
top = bax.YLim(2); % before you change the limit
bax.YLim(2) = 600; % set the upper limit
bax.Position(4) = bax.Position(4)*(bax.YLim(2)/top);
box off
结果: