diff --git a/src/series.jl b/src/series.jl index 61676b84..3776a74d 100644 --- a/src/series.jl +++ b/src/series.jl @@ -15,9 +15,10 @@ prepareSeriesData(x) = error("Cannot convert $(typeof(x)) to series data for plo prepareSeriesData(::Nothing) = nothing prepareSeriesData(t::Tuple{T, T}) where {T<:Number} = t prepareSeriesData(f::Function) = f -prepareSeriesData(a::AbstractArray{<:MaybeNumber}) = replace( - x -> ismissing(x) || isinf(x) ? NaN : x, - map(float,a)) +function prepareSeriesData(a::AbstractArray{<:MaybeNumber}) + f = isimmutable(a) ? replace : replace! + a = f(x -> ismissing(x) || isinf(x) ? NaN : x, map(float, a)) +end prepareSeriesData(a::AbstractArray{<:MaybeString}) = replace(x -> ismissing(x) ? "" : x, a) prepareSeriesData(s::Surface{<:AMat{<:MaybeNumber}}) = Surface(prepareSeriesData(s.surf)) prepareSeriesData(s::Surface) = s # non-numeric Surface, such as an image