change position of many legend

2 Ansichten (letzte 30 Tage)
alize beemiel
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

Akzeptierte Antwort

Walter Roberson
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)

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by