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

 Akzeptierte Antwort

José-Luis
José-Luis am 28 Aug. 2014
Bearbeitet: José-Luis am 28 Aug. 2014

0 Stimmen

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 Kommentar

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

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

Chad Greene
Chad Greene am 28 Aug. 2014

1 Stimme

You could use legalpha.

1 Kommentar

Gunnar
Gunnar am 28 Aug. 2014
Bearbeitet: Gunnar am 28 Aug. 2014
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.

Melden Sie sich an, um zu kommentieren.

Gefragt:

am 28 Aug. 2014

Kommentiert:

RG
am 29 Jan. 2019

Community Treasure Hunt

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

Start Hunting!

Translated by