How to make errorbar transparent?

조회 수: 166 (최근 30일)
supernoob
supernoob 2019년 7월 24일
편집: David Saidman 2021년 4월 22일
How can I make a plot with discrete errorbar points which are transparent?
  댓글 수: 4
Adam Danz
Adam Danz 2019년 7월 25일
편집: Adam Danz 2019년 7월 25일
Here's an alternative that will take a little work. You could create a function that has the same inputs as errorbar(). In that function you can create vertical lines that span from the lower to upper error limits for each point. That you're dealing with line objects and you'll be able to control their alpha values by adding an alpha value to the 4th position of the RGB color value.
h = plot();
h.Color = [h.Color, 0.5]; % for 50% transparency
Gino Delfe
Gino Delfe 2020년 9월 3일
it works for plot, but not when you use it on the function errorbar()

댓글을 달려면 로그인하십시오.

채택된 답변

Adam Danz
Adam Danz 2020년 9월 3일
편집: Adam Danz 2020년 9월 3일
Unlike many line plots, the color property cannot be used to set transparency in errorbar().
Transparency can be set from within the hidden Bar and Line objects that represent the errorbars and trend line, respectively.
% Plot errorbars
cla
hold on
plot(rand(20),rand(20)*2-.5, 'yo', 'MarkerFaceColor', 'k', 'MarkerSize', 15, 'LineWidth', 1.5);
h = errorbar(linspace(0,1,5), linspace(0,1,5), .5*ones(1,5), 'r', 'LineWidth', 10);
% Set transparency level (0:1)
alpha = 0.65;
% Set transparency (undocumented)
set([h.Bar, h.Line], 'ColorType', 'truecoloralpha', 'ColorData', [h.Line.ColorData(1:3); 255*alpha])
  댓글 수: 2
David Saidman
David Saidman 2021년 4월 21일
편집: David Saidman 2021년 4월 22일
This worked.
The end caps on the errorbar were still solid, but I was able to make them transparent with other undocumented properties in the errorbar object. In case someone else may be trying to do the same thing:
The hidden properties h.CapH and h.MarkerHandle can be adjusted the same way as h.Line and h.Bar as above, but use FaceColorData & FaceColorType and EdgeColorData & EdgeColorType properties in place of ColorData & ColorType (or can be set to 'visible','off').
Adam Danz
Adam Danz 2021년 4월 21일
편집: Adam Danz 2021년 4월 21일
Thanks for the addition, @David Saidman.
Unless there's something I'm missing, the FaceColor does not need changed for the caps. The transparency can be set in the EdgeColorData and EdgeColorType of the Cap handle.
set(h.Cap, 'EdgeColorType', 'truecoloralpha', 'EdgeColorData', [h.Cap.EdgeColorData(1:3); 255*alpha])

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Line Plots에 대해 자세히 알아보기

제품


릴리스

R2017b

Community Treasure Hunt

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

Start Hunting!

Translated by