如何根据其值在STACKED条形图上为各个条形定义颜色

时间:2013-07-26 06:37:27

标签: matlab colors figure

我将参考的数字,可以在这里找到:http://oi44.tinypic.com/2utgbo3.jpg

我正在尝试创建一个类似于Plot 1中所示的绘图。根据Plot 2中显示的值,堆叠条的颜色(主要是框)应该改变。

经过一些研究,我发现以下Solution on mathworks用于在matlab中对条形图进行单独着色。

我现在遇到的麻烦是将问题调整到堆叠的条形图。 为了简单起见,我首先尝试更改堆叠图表的mathworks解决方案中的代码:

  mydata=rand(2,3);                        % here I added a 2nd row
  bar_h=bar(mydata,'stack');               % here I added 'stack'
  bar_child=get(bar_h,'Children');
  set(bar_child,'CData',mydata);

  mycolor=[0 0 0;0 0 1;1 0 0];
  colormap(mycolor)
  set(bar_child,'CDataMapping','direct');

  for iCount=1:length(mydata)
      if (mydata(iCount)<.2)
          index(iCount)=1;
      elseif(mydata(iCount)>=.6)
          index(iCount)=3;
      else
          index(iCount)=2;
      end
  end

  set(bar_child, 'CData',index);
  colormap(mycolor);

第一个问题出现在这一行:

set(bar_child,'CData',mydata);

出现以下错误:

  

使用set conversion从单元格加倍时出错是错误的。

你能帮我一些帮助,为叠加杆调整这个解决方案吗?

此致

熊利

0 个答案:

没有答案