Plot and legend colors don't match

1 visualización (últimos 30 días)
Gunnar
Gunnar el 28 de Ag. de 2014
Comentada: RG el 29 de En. de 2019
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

Respuesta aceptada

José-Luis
José-Luis el 28 de Ag. de 2014
Editada: José-Luis el 28 de Ag. de 2014
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 comentario
RG
RG el 29 de En. de 2019
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

Iniciar sesión para comentar.

Más respuestas (1)

Chad Greene
Chad Greene el 28 de Ag. de 2014
You could use legalpha.
  1 comentario
Gunnar
Gunnar el 28 de Ag. de 2014
Editada: Gunnar el 28 de Ag. de 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.

Iniciar sesión para comentar.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by