【问题标题】:How to control colours for group in bar3 plot in Matlab如何在Matlab的bar3图中控制组的颜色
【发布时间】:2017-12-28 11:47:39
【问题描述】:

我在 Matlab 中做了一个 3D 条形图。我希望每个组都使用相同的颜色(例如 s1=blue、s2=green 和 s3=red;见下图)

我使用了以下代码:

Z = data;
Y = [1 300  600];   % The positions of bars along the y axis
h = bar3(Y,Z',0.05);
[nGroup, nBar] = size(Z);
nColors  = size(get(gcf, 'colormap'), 1);
colorInd = randi(nColors, nBar, nGroup);
for i = 1:nGroup
    c     = get(h(i), 'CData');
    color = repelem(repmat(colorInd(:, i), 1, 4), 6, 1);
    set(h(i), 'CData', color);
end
set(gca, 'YTickLabel', 

有什么建议吗?

【问题讨论】:

    标签: matlab plot colors bar-chart matlab-figure


    【解决方案1】:

    不是按 y 轴设置组,而是按 x 轴设置组,因此每个组都是一个图形对象,并且可以完全着色。 这是一个简单的方法:

    Z = randi(7,11,3); % some data with three groups
    bar3(Z,0.05); % Each column in Z is one graphic object
    set(gca,'XTickLabel',{'s1' 's2' 's3'}); % set the lables of the groups
    set(gca,'PlotBoxAspectRatioMode','auto') % make the view wider
    set(gca,'YDir','normal') % reverse the y-axis  to match your example
    colormap(lines(3)) % define 3 colors for coloring by group
    view(55,22) % rotate the orintation to match your example
    

    如果您想要问题中的颜色,可以将颜色图替换为:

    colormap(flipud(eye(3))) 
    

    或输入:

    h = bar3(Z,0.05); % instead of bar3(Z,0.05)
    set(h,{'FaceColor'},{[0 0 1];[0 1 0];[1 0 0]})
    

    【讨论】:

      猜你喜欢
      • 2017-11-28
      • 2020-01-25
      • 1970-01-01
      • 2014-11-12
      • 2011-01-04
      • 1970-01-01
      • 2020-09-26
      • 1970-01-01
      • 2012-10-01
      相关资源
      最近更新 更多