How can I make the 'plot' function markers and lines transparent using 'alpha' or otherwise?

I want to make a plot with semi-transparent markers and lines using 'plot' and 'alpha', but it's not working. Why?

Accepted Answer

MathWorks Support Team on 9 Jul 2021

Direct link to this answer

Cancel Copy to Clipboard

Direct link to this answer

Cancel Copy to Clipboard Edited: MathWorks Support Team on 16 Sep 2021

Basic 'plot' function markers do not currently support transparency or alpha values. If you would like to make a scatter plot with transparent markers, it is suggested that you use the 'scatter' function and use either 'alpha' or set the value of the property 'MarkerFaceAlpha':

scatter1 = scatter(x,y, 'MarkerFaceColor' , 'r' , 'MarkerEdgeColor' , 'k' ); % Set property MarkerFaceAlpha and MarkerEdgeAlpha to <1.0 scatter1.MarkerFaceAlpha = .2; scatter1.MarkerEdgeAlpha = .2; scatter1 = scatter(x,y, 'MarkerFaceColor' , 'r' , 'MarkerEdgeColor' , 'k' ); alpha(scatter1,.2)

If you would like to have a line plot using 'plot' with transparent markers on top, you can simply use 'hold on/off' and 'scatter' in conjunction for the same desired effect:

scatter1 = scatter(x,y, 'MarkerFaceColor' , 'r' , 'MarkerEdgeColor' , 'k' ); scatter1.MarkerFaceAlpha = .2;

Please see the "Input Arguments" list for the property 'value' on the documentation page for 'alpha' for a list of graphics objects that support face transparency: