两个条形图并排与双y标签

时间:2015-02-24 17:06:29

标签: matlab

我想在单个数字中绘制一个条形图[MAT_LAB(:,2),MAT_LAB(:,3)],其中包含双y-lable和范围。

MAT_LAB=[ 1 4210 0.9915;
          2 4225  0.9951;
          3 4201  0.9894]
bar(MAT_LAB(:,2),'stacked','BarWidth',0.3);
hold;
bar(MAT_LAB(:,3),'stacked','BarWidth',0.3);

它不起作用.y1的范围是0-4500。 y2的范围是0-1。

1 个答案:

答案 0 :(得分:1)

您可以使用plotyy执行此操作,如下所示:

delta = .2; %// adjust as needed
plotyy(MAT_LAB(:,1)-delta, MAT_LAB(:,2),...
       MAT_LAB(:,1)+delta, MAT_LAB(:,3),...
       @(x,y) bar(x,y, 'b', 'stacked', 'BarWidth', 0.3),...
       @(x,y) bar(x,y, 'r', 'stacked', 'BarWidth', 0.3));

注意:

    使用
  • delta以便通过水平移动它们来区分两组条形。
  • 传递给plotyy的两个anonymous functions控制每组 x y 值的实际绘图。您可以在那里指定bar个选项。使用两个匿名函数可以指定不同的选项(例如我的示例中的颜色)。

enter image description here