Matlab 条形图 - 根据符号和大小填充不同颜色的条形图

标签 matlab graph

我正在尝试用不同颜色为条形图中的各个条形着色,比如蓝色表示正,红色表示负。我在互联网上找不到任何有用的东西。我在下面的代码中发现每个条形图都根据第一个条形图的值着色,而不是为每个条形图单独设置颜色:

c1=zeros(32,3);
c2=zeros(32,3);
for i=1:3
    c1(:,i) = linspace(r(i),w(i),32);
    c2(:,i) = linspace(w(i),b(i),32);
end
c= [c1(1:end-1,:);c2];
subplot(2,2,2)

bar(Numbers(end-7:end,1)), shading interp
caxis([-8 8]), colormap(c), colorbar

谢谢你的帮助

最佳答案

您可以使用 sign 将条形对象的属性更改为 -1/0/1 ,然后使用二元红/蓝颜色图:

y=rand(10,1)*3-1.5; % some data

hb=bar(y);
set(get(hb,'children'),'cdata', sign(y) );
colormap([1 0 0; 0 0 1]); % red & blue in rgb

bar plot with binary colors

您可以找到更多信息 here .

编辑:要让它变暗,您必须结合caxis 适本地设置cdata :

y=rand(10,1)*3-1.5; % some data
hb=bar(y);

% the colormap
Mc = 16;
Nc = Mc*2+1; % number of colors, uneven so there is a neutral middle
rgb = [1 0 0;0 0 1];
cmap = [linspace(rgb(1,1),rgb(2,1),Nc)' linspace(rgb(1,2),rgb(2,2),Nc)' linspace(rgb(1,3),rgb(2,3),Nc)' ];
colormap(cmap);

% cdata
c = y;
set(get(hb,'children'),'cdata', c);
cmax = max(abs(c));
caxis([-cmax cmax]);

bar plot with shaded colors

关于Matlab 条形图 - 根据符号和大小填充不同颜色的条形图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13266352/

相关文章:

python 圣人 : How do I computer a nullspace (kernel) for a stoichiometric matrix?

matlab - 使用 imresize 进行缩小/放大操作后图像的尺寸差异

python - 用 C++ 绘制图形

algorithm - 任何哈密顿路径问题算法的实现

graph - 是否有一个术语来描述树中的所有非根节点?

matlab - 在 Matlab 中打印元音符号

MATLAB 的 glmfit 与 fitglm

matlab - 查找 .mat 文件之间的所有差异

JAVA:在一组边中查找多边形

c++ - Boost Graph 作为简单 DAG Graph 的基础?