我正在尝试制作根据其值具有颜色的条形图。我可以将条形图和热图分开,但不能分开。
以下是我尝试合并的命令:
N = X(1:10,1);
h = bar(N, 'hist');
cData = get(h, 'CData');
h.CData(n,:) = rbg;
set(h, 'CData', cData);
答案 0 :(得分:2)
我在R2018b版本中进行了测试。默认情况下,条形的颜色由FaceColor
和EdgeColor
属性确定,而不是直接由CData
属性确定。 CData
属性仅在FaceColor
设置为'flat'
时使用。
n_groups = 4;
n_data_per_group = 5;
Y = rand(n_groups, n_data_per_group);
h = bar(Y);
set(h, 'FaceColor', 'flat');
for i = 1:n_data_per_group
h(i).CData = Y(:, i);
end
colorbar
或者,根据gnovice's solution in the other thread的建议,可以使用bar(Y, 'hist')
来制作Patch
对象,而不是Bar
对象。下面对他的示例进行了一些修改,以适应多组数据。
n_groups = 4;
n_data_per_group = 5;
Y = rand(n_groups, n_data_per_group);
h = bar(Y, 'hist');
set(h, 'CDataMapping', 'scaled');
for i = 1:n_data_per_group
h(i).CData = Y(:, i);
end
colorbar
两种方法之间可观察到的主要区别是条之间的默认间距。