MATLAB Answers

Exporting a figure with transparent markers

12 views (last 30 days)
Samantha Cox
Samantha Cox on 1 Apr 2016
Commented: Samantha Cox on 5 Apr 2016
I need to export a figure with transparent markers. I can not currently find a solution for this. Usually I use export_fig, but this is not working. I have tried plot2svg (which just spits back errors), saveFigure does not work, save2pdf, print, or saving through the interface to any format. Normally I save to .png.
The figure was generated through:
hLine=plot(X,Y,'o','MarkerSize',5,'MarkerFaceColor','k','MarkerEdgeColor','none')
drawnow; hMarkers = hLine.MarkerHandle; hMarkers.get; hMarkers.FaceColorData = uint8(255*[0;0;0;0.5]);
Any help is appreciated
  1 Comment
Jeevan Joishi
Jeevan Joishi on 5 Apr 2016
How is it different from having no markers at all or having set the 'MarkerEdgeColor' set to none?

Sign in to comment.

Answers (1)

Mike Garrity
Mike Garrity on 5 Apr 2016
Reaching inside the Line object and messing with its undocumented internals is not a supported operation for a variety of reasons. One of the reasons is that print won't be able to see what you've done.
There are supported ways to create objects with transparency. For example, in R2015b or R2016a, you could do this:
npts = 250;
X = 1:npts;
Y = randn(1,npts);
scatter(X,Y,'filled','o','MarkerFaceColor','black','MarkerFaceAlpha',.5)
print('-dpdf','foo.pdf')
  1 Comment
Samantha Cox
Samantha Cox on 5 Apr 2016
My university only has matlab version 2015a. On the help files it says that FaceAlpha is possible for scatter objects after 2014b, but this does not seem to be true. I found a way to get around it using patches to make the markers...

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!