Bugfix; Allow missing as input to hist(); Updated version()

This commit is contained in:
Giorgio Calderone 2021-05-05 11:59:15 +02:00
parent 54db30cc32
commit 53159f89e1

View File

@ -1150,15 +1150,14 @@ function parseArguments(_args...)
if isa(arg, AbstractArray)
if nonmissingtype(eltype(arg)) != eltype(arg)
@assert nonmissingtype(eltype(arg)) <: AbstractFloat "Missing values are supported only on arrays of floats"
arg[ismissing.(arg)] .= NaN
arg = convert(Array{nonmissingtype(eltype(arg))}, arg)
arg = replace(arg, missing => NaN)
end
tt = eltype(arg)
# Try to convert into Int, Float64 and String
if (tt <: Integer) && !(tt <: Int)
arg = convert(Array{Int}, arg)
elseif (tt <: Real) && !(tt <: Float64)
elseif (tt <: AbstractFloat) && !(tt <: Float64)
arg = convert(Array{Float64}, arg)
elseif (tt <: AbstractString) && !(tt <: String)
arg = convert(Array{String}, arg)
@ -1348,7 +1347,7 @@ end
Return the **Gnuplot.jl** package version.
"""
version() = v"1.3.0"
version() = v"1.3.1"
# ---------------------------------------------------------------------
"""
@ -1920,6 +1919,35 @@ function hist(v1::Vector{T1}, v2::Vector{T2};
return Histogram2D(x1, x2, hh.weights, binsize1, binsize2)
end
# Allow missing values in input
function hist(v::Vector{Union{Missing,T}}; kw...) where T <: Real
ii = findall(.!ismissing.(v))
@info "Neglecting missing values ($(length(v) - length(ii)))"
hist(convert(Vector{T}, v[ii]); kw...)
end
function hist(v1::Vector{Union{Missing,T1}}, v2::Vector{T2}; kw...) where {T1 <: Real, T2 <: Real}
ii = findall(.!ismissing.(v1) .&
.!ismissing.(v2) )
@info "Neglecting missing values ($(length(v1) - length(ii)))"
hist(convert(Vector{T1}, v1[ii]), convert(Vector{T2}, v2[ii]), kw...)
end
function hist(v1::Vector{T1}, v2::Vector{Union{Missing, T2}}; kw...) where {T1 <: Real, T2 <: Real}
ii = findall(.!ismissing.(v1) .&
.!ismissing.(v2) )
@info "Neglecting missing values ($(length(v1) - length(ii)))"
hist(convert(Vector{T1}, v1[ii]), convert(Vector{T2}, v2[ii]), kw...)
end
function hist(v1::Vector{Union{Missing,T1}}, v2::Vector{Union{Missing,T2}}; kw...) where {T1 <: Real, T2 <: Real}
ii = findall(.!ismissing.(v1) .&
.!ismissing.(v2) )
@info "Neglecting missing values ($(length(v1) - length(ii)))"
hist(convert(Vector{T1}, v1[ii]), convert(Vector{T2}, v2[ii]), kw...)
end
# --------------------------------------------------------------------
"""