I want to make a plot with semi-transparent markers and lines using 'plot' and 'alpha', but it's not working. Why?
Prashant Kumar answered .
2025-11-20
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;
or:
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:
plot(x,y); hold on scatter1 = scatter(x,y,'MarkerFaceColor','r','MarkerEdgeColor','k'); scatter1.MarkerFaceAlpha = .2; hold off
You can also change the transparency of the lines generated by 'plot' by appending the 'Color' property with an alpha value:
plot1 = plot(x,y); plot1.Color(4) = 0.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: