How can I set transparency in 2D plot?

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

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

Thanks Chris, is it also not possible with a scatter plot?
Not that I'm aware of. Although, I did just come across an undocumented solution that may help you: http://undocumentedmatlab.com/blog/plot-markers-transparency-and-color-gradient
I tested that referenced code in R2015a with complete success.
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)

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.

Asked:

ccs
on 4 Mar 2015

Answered:

on 28 Nov 2017

Community Treasure Hunt

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

Start Hunting!