Matlab的酒吧和传说并不是同一个方向

时间:2014-10-02 15:30:10

标签: matlab bar-chart legend

当在matlab中将矩阵绘制为多个水平条时(使用barh),matlab将第一列作为底栏,最后一列作为顶部。 然而,传说是另一种方式,因此第一项是图例中的顶部项目。 我认为这看起来很混乱。请参见附图

    data = [0.8000    0.1000    0.6000    0.4500
    0.3000    0.5000    0.7000    0.3500
    0.4000    0.4500    0.2000    0.5000];
    barh(data);
    legend('Column 1', 'Column 2', 'Column 3', 'Column 4');

如何撤消图例顺序?

(撤消图例命令中项目的顺序只会更改字符串,而不会更改图例中的颜色,因此顺序仍然是颠倒的,标签是错误的。)

2 个答案:

答案 0 :(得分:0)

你可以这样做:

data = [0.8000    0.1000    0.6000    0.4500
        0.3000    0.5000    0.7000    0.3500
        0.4000    0.4500    0.2000    0.5000];
h = barh(data);
legend(fliplr(h),'Column 4', 'Column 3', 'Column 2', 'Column 1');

这样,您可以更改手柄的顺序。图例条目将手动重新排序。

答案 1 :(得分:0)

对于2017b中的堆积条形图,您最好使用一个小函数来翻转图例条目:fliplegend

只需绘制条形图并运行此程序,就像运行图例一样:

figure();
bb=bar(data, 'Stacked','FaceColor','flat');
labels={'label1','label2'};
fliplegend(labels);