How can I set transparency in 2D plot?

46 views (last 30 days)
I have lots of data points overlaid. I would like to know if the is a way in matlab to set the transparency of my plot to be able to visualize the density clearly?
Thanks

Accepted Answer

Chris McComb
Chris McComb on 4 Mar 2015
I don't think there's a way to make markers transparent. However, you could plot each data point as a small circle (using patch), and then set the transparency of the patch. This may be relevant if you go that direction: http://stackoverflow.com/questions/5893513/plot-circles-with-alpha-values-in-matlab
  4 Comments
Carl Witthoft
Carl Witthoft on 28 Jan 2016
I tested that referenced code in R2015a with complete success.
Mike Garrity
Mike Garrity on 28 Jan 2016
You can't set the transparency of the markers that plot creates. In fact, plot doesn't really have any support for transparency yet.
But as of R2015b, you can set transparency for the markers that scatter creates. That means that you could do this:
x = 1:10;
y = rand(1,10);
h = plot(x,y);
hold on
scatter(x,y,150,'filled', ...
'MarkerFaceAlpha',3/8,'MarkerFaceColor',h.Color)
hold off

Sign in to comment.

More Answers (1)

Peter Rochford
Peter Rochford on 28 Nov 2017
I have written a collection of Matlab functions for creating semi-transparent markers in plots and legends. The files are available from MATLAB Central as the MarkerTransparency package. A few examples of how to use these functions are included in the download and there is also a Wiki on GitHub. A major benefit of this package is it enables the user to have the semi-transparent markers also appear in the legend.

Community Treasure Hunt

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

Start Hunting!