change position of many legend
1 Ansicht (letzte 30 Tage)
Ältere Kommentare anzeigen
alize beemiel
am 4 Okt. 2020
Kommentiert: alize beemiel
am 4 Okt. 2020
hi !!
i have a probleme to plot legend inside a condition
the last condition reset or be superpositoin on the last one
my code is.....
hold on
if(exist ('blockx') == false)
%disp('blockx is not initialized');
else
blockx = blockx(~all(blockx == 0, 2),:);
cdlx=plot3(blockx(:,2),blockx(:,3),blockx(:,4),'mo','MarkerSize',sz,...
'MarkerEdgeColor','m',...
'MarkerFaceColor','m');
legend(cdlx,'Block_X','Location','northeast');
end
hold on
if(exist ('blocky') == false)
%disp('blocky is not initialized');
else
blocky = blocky(~all(blocky == 0, 2),:);
cdly=plot3(blocky(:,2),blocky(:,3),blocky(:,4),'bo','MarkerSize',sz,...
'MarkerEdgeColor','b',...
'MarkerFaceColor','b');
legend(cdly,'Block_Y','Location','northeast');
end
hold on
if(exist ('blockz') == false)
%disp('blockz is not initialized');
else
blockz = blockz(~all(blockz == 0, 2),:);
cdlz=plot3(blockz(:,2),blockz(:,3),blockz(:,4),'go','MarkerSize',sz,...
'MarkerEdgeColor','g',...
'MarkerFaceColor','g');
legend(cdlz,'Block_Z','Location','northeast');
end
hold on
% if ~exist(cdlz)
%
% end
if(exist ('encast') == false)
%disp('encast is not initialized');
else
encast = encast(~all(encast == 0, 2),:);
cdlxyz=plot3(encast(:,2),encast(:,3),encast(:,4),'rs','MarkerSize',sz,...
'MarkerEdgeColor','r',...
'MarkerFaceColor','r');
legend(cdlxyz,'encastrement','Location','northeast');
end
hold on
if(exist ('blockxz') == false)
%disp('blockxz is not initialized');
else
blockxz = blockxz(~all(blockxz == 0, 2),:);
cdlxz=plot3(blockxz(:,2),blockxz(:,3),blockxz(:,4),'yo','MarkerSize',sz,...
'MarkerEdgeColor','y',...
'MarkerFaceColor','y');
legend(cdlxz,'Block_XZ','Location','northeast');
end
hold on
if(exist ('blockxy') == false)
% disp('blockxy is not initialized');
else
blockxy = blockxy(~all(blockxy == 0, 2),:);
cdlxy=plot3(blockxy(:,2),blockxy(:,3),blockxy(:,4),'co','MarkerSize',sz,...
'MarkerEdgeColor','c',...
'MarkerFaceColor','c');
legend(cdlxy,'Block_XY','Location','northeast');
end
hold on
if(exist ('blockyz') == false)
%disp('blockyz is not initialized');
else
blockyz = blockyz(~all(blockyz == 0, 2),:);
cdlyz=plot3(blockyz(:,2),blockyz(:,3),blockyz(:,4),'ko','MarkerSize',sz,...
'MarkerEdgeColor','k',...
'MarkerFaceColor','k');
legend(cdlyz,'Block_YZ','Location','northeast');
end
hold on
need some help
and thanks
0 Kommentare
Akzeptierte Antwort
Walter Roberson
am 4 Okt. 2020
Instead of using a number of individual plot() followed by individual legend() calls, set the plot DisplayName property to the string you want displayed, and legend show once afterwards.
cdlyz=plot3(blockyz(:,2),blockyz(:,3),blockyz(:,4),'ko','MarkerSize',sz,...
'MarkerEdgeColor','k',...
'MarkerFaceColor','k', 'DisplayName', 'Block_YZ');
%and do not legend() right afterwards, not until all of the plots are done
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Legend finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!