Matlab条形图分组但在不同的y尺度

时间:2013-09-08 20:31:58

标签: matlab matlab-figure

我有两组数据,我想用条形图进行绘图。但问题是这两组数据的规模完全不同。如果我只使用bar(A),它看起来像这样:分组但第二个数据集因为比例而几乎看不见。

enter image description here

但是,如果我使用plotyy(x,y1,x,y2),则情节将如下:两组数据的比例不同,但条形图未分组,第二组数据与第一组重叠。

enter image description here

所以我想知道是否有一种方法来绘制像第一个图一样分组的条形图,但是这两个数据集是使用单独的y尺度?或者有没有办法在第二个图中调整条形图的水平偏移量,使其看起来像“分组”。

谢谢!

1 个答案:

答案 0 :(得分:8)

这使用plotyyplotyy(x1,y1,x2,y2,fun1,fun2)变体:

%// Set these three variables as desired
offset = (x(2)-x(1))/8;
width = (x(2)-x(1))/4;
colors = {'b','g'};

%// Do the plot
plotyy(x-offset,y1,x+offset,y2, @(x,y) bar(x,y,width,colors{1}), @(x,y) bar(x,y,width,colors{2}));

enter image description here

如果您希望x-ticks仅出现在使用过的x值上:

h = plotyy(x-offset,y1,x+offset,y2, @(x,y) bar(x,y,width,colors{1}), @(x,y) bar(x,y,width,colors{2}));
set(h,'xtick',x)