How can I set the transparency of LINE objects in MATLAB 7.14 (R2012a)?

768 visualizaciones (últimos 30 días)
I would like to set the transparency of LINE objects in my figures. I use the ALPHA command to set the transparency of objects in my figure. However, LINE objects do not respect ALPHA values even though I am using the OPENGL renderer.

Respuesta aceptada

MathWorks Support Team
MathWorks Support Team el 25 de Jun. de 2012
Line series objects do not support transparency (alpha) values. The following workaround can be used to overcome this limitation:
1. Please refer to the following MATLAB Central link:
2. The above function can be used to introduce transparency in LINE objects as follows:
EXAMPLE 1:
n = 10;
xs = rand(n,1);
ys = rand(n,1);
zs = rand(n,1)*3;
plot3(xs,ys,zs,'r.')
xlabel('x');ylabel('y');zlabel('z');
p = patchline(xs,ys,zs,'linestyle','--','edgecolor','g','linewidth',3,'edgealpha',0.2);
EXAMPLE 2:
t = 0:pi/64:4*pi;
p(1) = patchline(t,sin(t),'edgecolor','b','linewidth',2,'edgealpha',0.5);
p(2) = patchline(t,cos(t),'edgecolor','r','linewidth',2,'edgealpha',0.5);
l = legend('sine(t)','cosine(t)');
tmp = sort(findobj(l,'type','patch'));
for ii = 1:numel(tmp)
set(tmp(ii),'facecolor',get(p(ii),'edgecolor'),'facealpha',get(p(ii),'edgealpha'),'edgecolor','none')
end
  2 comentarios
Walter Roberson
Walter Roberson el 6 de Nov. de 2019
This is not the simplest approach, check fabian's answer below
Walter Roberson
Walter Roberson el 6 de Nov. de 2019
The question is specifically about R2012a, at which time the functionality described by Fabian did not exist.

Iniciar sesión para comentar.

Más respuestas (1)

Fabian
Fabian el 31 de Jul. de 2015
you could try setting a four-element vector for the color property of the line. works for me in 2014 b.
lh.Color=[0,0,0,0.5]
with lh handle to the line, producing a black line with transparency 0.5
  7 comentarios
Star Strider
Star Strider el 3 de Ag. de 2022
The 4-element colour vector seems to work in R2022a
x = 0:0.01:2*pi;
y = sin(x);
figure
plot(x, y, '-', 'Color',[0.2 0.5 0.9 0.8], 'LineWidth',2.5) % Alpha = 0.8
hold on
plot(x, y+0.25, '-', 'Color',[0.2 0.5 0.9 0.2], 'LineWidth',2.5) % Alpha = 0.2
hold off
.
Walter Roberson
Walter Roberson el 15 de Jul. de 2025
The 4-element colour vector continues to work in R2025a.
However, anything that causes the line object to be copied or regenerated with lose the alpha information, including:
  • copyobj
  • saving and loading the plot or portions of the plot
  • sending the plot between parallel workers and the client
  • resizing the axes
  • print() or exportobj() (both of which cause the figure to be copied to a temporary figure, then internal properties are adjusted to fit the page size and resolution properties in effect, then the modified version is rendered.)

Iniciar sesión para comentar.

Categorías

Más información sobre Annotations en Help Center y File Exchange.

Etiquetas

Aún no se han introducido etiquetas.

Productos

Community Treasure Hunt

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

Start Hunting!

Translated by