我要参考的图可以在这里找到: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 时出错是不可能的。
你能给我一些帮助来调整这个解决方案以适应堆叠条吗?
问候,
贝尔利