Legend showing same symbol for loop plot

My legend is showing the same symbol for different data. My code is as follows
for i=1:size(obs,1)
x = V(:,1)'*obs(i,:)';
y = V(:,2)'*obs(i,:)';
z = V(:,3)'*obs(i,:)';
if(grp{i}=='Cancer')
plot3(x,y,z,'r+','LineWidth',2);
else
plot3(x,y,z,'ko','LineWidth',2);
end
end
Unrecognized function or variable 'obs'.
xlabel ('V1 modes')
ylabel ('V2 modes')
zlabel ('V3 modes')
legend('Cancer Patients', 'Normal Patients')
In the output, the legend is showins the 'r+' for both cancer patients and normal patients

 채택된 답변

Adam Danz
Adam Danz 2023년 4월 29일
편집: Adam Danz 2023년 4월 29일

0 개 추천

Try this
for i=1:size(obs,1)
x = V(:,1)'*obs(i,:)';
y = V(:,2)'*obs(i,:)';
z = V(:,3)'*obs(i,:)';
if(grp{i}=='Cancer')
hc = plot3(x,y,z,'r+','LineWidth',2,'DisplayName','Cancer');
else
hn = plot3(x,y,z,'ko','LineWidth',2,'DisplayName', 'Normal');
end
end
legend([hc,hn])
If you still only see the Cancer group in the legend, check that grp contains character vectors that aren't 'Cancer'.

추가 답변 (0개)

카테고리

제품

릴리스

R2021b

질문:

2023년 4월 29일

편집:

2023년 4월 29일

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by