Matlab : put transparancy on a bar plot
이전 댓글 표시
Hello, I have 2 different bar plot on a graph and I would like to put transparancy in order to see all the data even if my curves overlap. I try this code :
b1 = bar(x1,y1);%,'FaceColor',[0.2,0.2,0.5]);
set(get(b1,'Children'),'FaceAlpha',0.3)
hold on
b2 = bar(x1,y1,'FaceColor',[0,0.7,0.7]);
set(get(b2,'Children'),'FaceAlpha',0.2)
But it doesn't work. Also, I would like to calculate the probability of data which are in common between the 2 courb.
Thanks in advance,
Best regards
댓글 수: 1
pfb
2015년 4월 28일
what do you exactly mean "it does not work"?
I'm asking because in my case it "sort of works". The bars do become transparent. Only, when they overlap, they produce a different color depending on which one is on top.
I see that you plot y1 vs x1 in both of your plots... But probably you re-define those between the two plots...
채택된 답변
추가 답변 (2개)
Juan Ignacio Bravo Pérez-Villar
2016년 5월 18일
편집: Juan Ignacio Bravo Pérez-Villar
2016년 5월 18일
Hello, I found a simpler way to do it that works for me on Matlab 2015b
b1 = bar(x1,y1,'r');
b1.FaceAlpha = 0.5;
hold on
b2 = bar(x2,y2,'FaceColor',[0,0.7,0.7]);
b2.FaceAlpha = 0.5;
Hope its useful for somebody.
Regards,
댓글 수: 1
Qin Liang
2017년 3월 6일
Works properly and simple on Matlab 2016B
Chad Greene
2015년 5월 3일
This works find for me in 2012b:
x1 = [-5 -4 -1 3 4 5 6 7 10];
y1 = rand(size(x1));
b1 = bar(x1,y1);%,'FaceColor',[0.2,0.2,0.5]); %RXLEV
set(get(b1,'Children'),'FaceAlpha',0.3)
hold on
b2 = bar(x1,y1,'FaceColor',[0,0.7,0.7]);
set(get(b2,'Children'),'FaceAlpha',0.2)

If it's not properly transparent, try
set(gcf,'renderer','opengl')
댓글 수: 1
Sarah Guiffray
2015년 5월 5일
편집: Sarah Guiffray
2015년 5월 5일
카테고리
도움말 센터 및 File Exchange에서 Annotations에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

