我有一个for循环,在2个向量的基础上创建一个带有4个条形的条形图。 两个栏是红色的,两个是绿色的。红色和绿色意味着两件不同的事情。我想在一个传说中表明,但我该怎么做呢。我尝试了几件事,但没有什么似乎做我想要的。我的最新输出给出了这样的传奇:`
'red color' Wrong answer
'red color' Wrong answer
'green color' right answer'
'green color' right answer
你可以看到输出给了我4个传说,但我只想要2。 如何解决这个问题:
R = [-1 -1 1 1];
T = [2.0741 2.1521 2.9529 2];
figure;
% Barchart
for i=1:length(T)
h = bar(i, T(i));
if i == 1 hold on, end
if R(i) == -1
col = 'r';
legendInfo{i} = ['Wrong answer '];
else
col = 'g';
legendInfo{i} = ['Right answer '];
end
set(h, 'FaceColor', col)
end
set(gca,'xTick',1:length(R),'xTickLabel',1:length(R))
xlabel('question number.');
ylabel('time per question')
legend(legendInfo)
答案 0 :(得分:2)
您可以将句柄传递给legend
以指定您想要的条目:
R = [-1 -1 1 1];
T = [2.0741 2.1521 2.9529 2];
figure;
% Barchart
for i=1:length(T)
h(i) = bar(i, T(i));
if i == 1 hold on, end
if R(i) == -1
col = 'r';
legendInfo{i} = ['Wrong answer '];
else
col = 'g';
legendInfo{i} = ['Right answer '];
end
set(h(i), 'FaceColor', col)
end
set(gca,'xTick',1:length(R),'xTickLabel',1:length(R))
xlabel('question number.');
ylabel('time per question')
[~,legendsIWant]=unique(R)
legend(h(legendsIWant),legendInfo(legendsIWant));