I suspect it's because I'm using transparency (i.e. FaceAlpha) in my plot. Example code run on MATLAB r2013a:
clear all, close all
x = 1:10;
y = 100:100:200;
z1 = 1*x;
z2 = 3*x;
[X,Y] = meshgrid(x,y);
Z = [z1;z2];
fig = 0; fig = fig + 1; figure(fig);
hMesh = mesh(X,Y,Z);
set(gca,'XLim',[1 10],...
'YLim',[100 200],...
'XTick',[0:1:10],...
'YTick',[100:100:200]);
set(hMesh,'FaceColor',[1 0 0],'EdgeColor',[1 0 0],'FaceAlpha',0,'EdgeAlpha',0.4,'LineWidth',3);
hLegend = legend('Test','Location','Northeast');
box on

 채택된 답변

José-Luis
José-Luis 2014년 8월 28일
편집: José-Luis 2014년 8월 28일

0 개 추천

legendObj = get(hLegend,'Children');
your_patch = findobj(legendObj,'Type','patch');
set(your_patch,'FaceAlpha',0,'EdgeAlpha',0.4);
Please accept the answer that best solves your problem.

댓글 수: 1

Hi, there, I'm trying to solve similar issue, legend colors to match the plot line colors and can't find a solution, so I'm asking for help here. Here is the code:
Color = distinguishable_colors(numel(donuts));
for m = 1 : max(data.numberOfDonutsPerShelf)-1
i(m) = m;
i = i';
end
for n = 1 : numel(donuts)
hi(n,:) = plot(i,data.donutsFrequencies(:,n),'-o','color',Color(n,:));
end
hold on
legend(hi,strcat(num2str(donutsShelves),'N'))
legend boxoff

댓글을 달려면 로그인하십시오.

추가 답변 (1개)

Chad Greene
Chad Greene 2014년 8월 28일

1 개 추천

You could use legalpha.

댓글 수: 1

Gunnar
Gunnar 2014년 8월 28일
편집: Gunnar 2014년 8월 28일
Thanks, Chad! Great script, though I choose the answer below since it provides no dependencies such as an extra script.
Hopefully, MATLAB can correct this in a future version of MATLAB.

댓글을 달려면 로그인하십시오.

카테고리

질문:

2014년 8월 28일

댓글:

RG
2019년 1월 29일

Community Treasure Hunt

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

Start Hunting!

Translated by