Bug with Legend object shading being reset during print
Show older comments
This produces a legend with an interpolated icon to better identify the surface, trivial here, but critical with many surfaces you want to print for publication.
figure(2); clf; Z=peaks; surf(Z); hold on; set(gcf,'PaperPositionMode','auto');
patch([-1; 1; 1; -1;]*25+25, [-1; -1; 1; 1;]*25+25,[1; 1; 1; 1;]+4,'EdgeColor','k','EdgeAlpha',0.6,'FaceAlpha',0.4,'LineStyle','--','FaceColor',[1 0 0])
set(gcf,'Position',[ 13 46 1249 556]); set(gcf,'Color',[1 1 1]);
[h,h_icons]=legend([{'peaks'},{'baseline'}]);
set(h_icons(3),'CData',[2 -10 2 10],'FaceColor','interp');
print(gcf,'-dpng',[cd '\BAD_flat_legend'],'-r300');
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
what it's supposed to look like

What actually prints

3 Comments
Curtis
on 25 Jul 2016
Div Tiwari
on 8 Aug 2016
I was unable to reproduce this in MATLAB R2016a with any of the graphics renderers. Could you tell me which release of MATLAB you're using?
Curtis
on 22 Aug 2016
Answers (0)
Categories
Find more on Legend in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!