【问题标题】:Using a colorbar to append colors to a bar graph by given values MATLAB使用颜色条通过给定值将颜色附加到条形图 MATLAB
【发布时间】:2021-07-08 14:22:25
【问题描述】:

考虑以下bar 图表

figure
bar([2 4 8; 1 2 3; 3 3 3],'stacked')

我希望每个条都具有与颜色图相对应的颜色(此处,在 [0,1] 之间),这样每个条都会获得与以下数据匹配的颜色

data = [0.1 0.8 0.1; 0.5 0.5 0.2; 0.6 0.3 0.9];

【问题讨论】:

  • 我猜你的意思是颜色图而不是颜色条?它应该如何定义,比如它应该包含多少个离散的颜色级别?
  • @Matteo colormap/colorbar定义在[0,1]之间,即如果是灰度,其中0为黑色,1为白色,对于条形图中的第一列,蓝色黄色会变成深灰色(0.1),橙色(中间)会变成浅灰色(0.8)

标签: matlab colormap


【解决方案1】:

您可以使用“CData”参数单独设置面的颜色。您只需要记住将“FaceColor”也设置为“flat”。

b = bar([2 4 8; 1 2 3; 3 3 3], 'stacked');
data = [0.1 0.8 0.1; 0.5 0.5 0.2; 0.6 0.3 0.9];

for i = 1:length(b)
    b(i).CData = repmat(data(i, :)', [1, 3]); % use your data as grayscale color level
    b(i).FaceColor = 'flat';
end

编辑: 如果我弄错了您想要颜色图中颜色的顺序,您应该将 Cdata 调用更改为 b(i).Cdata = repmat(data(:, i), [1, 3]);。不知道你想要哪一个。

【讨论】:

  • 在 R2018b 和 R2019a 上都非常适合我。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-02-03
  • 2019-06-01
  • 2018-04-04
  • 2014-07-02
  • 1970-01-01
相关资源
最近更新 更多