How can I set the transparency of LINE objects in MATLAB 7.14 (R2012a)?
1,800 次查看(过去 30 天)
显示 更早的评论
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.
采纳的回答
MathWorks Support Team
2012-6-25
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 个评论
Walter Roberson
2019-11-6
Karl Oskar Pires Bjørgen comments,
This is not the simplest approach, check fabian's answer below
Walter Roberson
2019-11-6
The question is specifically about R2012a, at which time the functionality described by Fabian did not exist.
更多回答(1 个)
Fabian
2015-7-31
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
6 个评论
DGM
2022-8-3
I can't test anything beyond R2019b, but undocumented features are subject to change without notice; after all, if there's no documentation, the changes aren't documented either.
Star Strider
2022-8-3
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
.
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Graphics Performance 的更多信息
产品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!