change position of many legend
1 view (last 30 days)
Show older comments
alize beemiel
on 4 Oct 2020
Commented: alize beemiel
on 4 Oct 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 Comments
Accepted Answer
Walter Roberson
on 4 Oct 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
More Answers (0)
See Also
Categories
Find more on Legend in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!