当在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');
如何撤消图例顺序?
(撤消图例命令中项目的顺序只会更改字符串,而不会更改图例中的颜色,因此顺序仍然是颠倒的,标签是错误的。)
答案 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);