条形图上的不同颜色和数据值:条形图Matlab

时间:2017-05-12 08:14:15

标签: matlab bar-chart

我想在条形图中绘制标量TEV_IdzTEV_TF

问题1:我希望看到两种不同颜色的两个标量的图例,但我最终得到一个两个条形图具有相同蓝色的标记。

问题2:我试图在各自的条上得到每个标量的值,但我无法使用以下函数生成输出。

这是我的输出:

my undesired output

这是我的代码:

TEV_plot = bar([TEV_Idz;TEV_TF], 0.6);
grid on;
set(gca, 'yTickLabel',num2str(100.*get(gca,'yTick')','%g%%'));

% PROBLEM 1: The code for having a legend
ii = cell(1,2);
ii{1}='L'; ii{2}='B';     %first bar called L and second bar called B
legend(TEV_plot,ii);      %mylegend

%PROBLEM 2: This is my code for plotting the value of each scalar on the top of the every bar graph.
for k = 1:numel(TEV_plot)
    text(k, TEV_plot(k), {num2str(TEV_plot(k)), ''}, ...
        'HorizontalAlignment', 'center', ...
        'verticalalignment', 'bottom')
end

1 个答案:

答案 0 :(得分:1)

条形图每个系列只能采用一种颜色,所以我们只需要将数据分成两个系列而不是一个! 每个系列都是一个矩阵行,矩阵的每一列都是不同的颜色,所以如果我们添加一些0(所以填充不会显示为任何高度的实际条)你可以实现你的目标想。

这实际上解决了问题1,使图例正常工作,并使问题2更容易!

有关详细信息,请参阅代码注释,请注意该栏必须为String value = element.getAttribute("value");

'stacked'

输出:

bar plot with different colour bars