For Plots.jl you could use some workaround like here below:
using Plots; gr()
Z = Vector{Union{Float64, Missing}}(undef, 11)
X = rand(11); Y = rand(11); Z .= -5:5
Z[rand(1:10,3)] .= missing
using Colors, ColorSchemes
c1 = colorant"red"
c2 = colorant"green"
c0 = colorant"white" # missings will be labelled white
n = 10
cscheme1 = ColorScheme([c0; range(c1, stop=c2, length=n)])
z1, z2 = extrema(skipmissing(Z))
dz = (z2 - z1)/n
Z2 = replace(Z, missing => z1 - dz)
ϵ = 1e-3 # fudge factor
Plots.scatter(X,Y, marker_z=Z2, ms=6, msw=0.3, label=false, c=palette(cscheme1,n+1), clims=(z1-(1+ϵ)*dz,z2+ϵ*dz))
Please double-check the details.
