创建它的代码:
names = {'a', 'b',.....}
b = bar(cell2mat(data_plot'));
legend(b,names,'Location', 'eastoutside');
ylabel('Teest');
因此,我想向其添加图例,但不是从每个条形图(蓝色,黄色,橙色)而是图例组(1、2、3、4 ...)
在名称中保存了12个组的所有名称,但是我不知道如何将它们设置为图例的值。相反,我得到了描述每个条形图的其他值?
更新:更清楚地说,我不想使用来自 names 的值来更改x-aches(1,2,..)上的值。我希望(1,2 ..)保持原样以及它们的状态,但是我想更改右侧的表,在该表中有蓝色,橙色和黄色条的图例,其值对应于(1,2,3 ..)与名称中的那个。
示例:1是来自'USA'的数据,因此 names 中的第一个值是'USA'。这意味着我想在右边的桌子上像1:“美国”
答案 0 :(得分:3)
您无法直接做您想做的事情,需要一次绘制每个组,请参见MATLAB Answers上的this related post和SO上的this question。这是基于此的解决方法,但是每个组中的条形必须使用相同的颜色:
Y = rand(5,3);
names = {'a';'b';'c';'d';'e'};
colours = {'g';'r';'b';'y';'c'};
h = zeros(size(Y));
for k = 1:size(Y,1)
h(k,:) = bar(3*k-2,Y(k,:),colours{k});
hold on
end
xlim([0 15]);
set(gca,'XTick',[1 4 7 10 13]);
set(gca,'XTickLabel',{'1';'2';'3';'4';'5'});
ylabel('Test');
legend(h(:,1),names,'location','northeastoutside')
产生以下内容:
答案 1 :(得分:-1)
编辑:为了遗产而离开。忽略。我误解了问题,跳到我想到的答案,而不是花时间阅读和测试解决方案。
尝试set(gca, 'xticklabel', names);
还请务必查看以下原因: