0

我要参考的图可以在这里找到:http: //oi44.tinypic.com/2utgbo3.jpg

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

经过一番研究,我在matlab中找到了以下关于mathworks的解决方案,用于对条形图进行单独着色。

我现在遇到的麻烦是使问题适应堆叠条。为简单起见,我首先尝试将代码从 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 to double from cell 时出错是不可能的。

你能给我一些帮助来调整这个解决方案以适应堆叠条吗?

问候,

贝尔利

4

0 回答 0