How can I change the opacity of specific scatterplot dots (markers)?

I have a plotly figure containing several scatterplot traces. For every scatterplot trace Iā€™d like to change the opacity of every specific marker according to the input data. The input data for every dot opacity is a value between 0 and 1 which could be directly mapped to opacity. (I am thinking of something similar as the color coding in a heatmap.) How can I achieve this?

Seem like scatter-marker-opacity reference is what I was looking for. Specifying an array with trace marker specific opacities should do the job.

@fcromer You cannot define a list (array) of opacities, because opacity attribute has a unique value for each trace. Instead you can define the marker colors as a list of rgba color codes, one for each marker.

fig = go.Figure(go.Scatter(x =[1,2,3], y=[-2, 5, 4], mode='markers', 
                         marker_size=25,
                         marker_color=['rgba(255,0,255, 0.4)', 'rgba(255,127,80, 0.25)', 
                                                                   'rgba(60,179,113, 0.7)']), 
                layout_width=600, layout_height=300)

marker-opacity

Iā€™m modifying the markers opacity, not the one of the trace and it works perfectly fine for me:

data_scaled_to_values_between_0_and_1 = [...]

trace = go.Scattergl(
    x=mz_values,
    y=idx_values,
    mode='markers',
    marker=dict(opacity=data_scaled_to_values_between_0_and_1),
)
1 Like

Nice. Perhaps this a newer property because before I knew that opacity can be just a number in [0,1].

1 Like