diff --git a/src/aesthetics.jl b/src/aesthetics.jl index 6291888b8..0cefe5c4e 100755 --- a/src/aesthetics.jl +++ b/src/aesthetics.jl @@ -1,11 +1,11 @@ const NumericalOrCategoricalAesthetic = - Union{Nothing, Vector, Array, IndirectArray} + Union{Nothing, Vector, IndirectArray} const CategoricalAesthetic = Union{Nothing, IndirectArray} const NumericalAesthetic = - Union{Nothing, Matrix, Vector, Array} + Union{Nothing, Matrix, Vector} @varset Aesthetics begin @@ -273,11 +273,7 @@ cat_aes_var!(a, b) = a function cat_aes_var!(a::AbstractArray{T}, b::AbstractArray{U}) where {T, U} V = promote_type(T, U) - if isa(a, Array{Union{Missing,T}}) || isa(b, Array{Union{Missing,U}}) - ab = Array{Union{Missing,V}}(undef, length(a) + length(b)) - else - ab = Array{V}(undef, length(a) + length(b)) - end + ab = Array{V}(undef, length(a) + length(b)) i = 1 for x in a ab[i] = x diff --git a/src/mapping.jl b/src/mapping.jl index c0aa21906..7ded47cca 100644 --- a/src/mapping.jl +++ b/src/mapping.jl @@ -10,10 +10,7 @@ end Base.hash(colgroup::GroupedColumn, h::UInt64) = hash(colgroup.columns, h) -function ==(a::GroupedColumn, b::GroupedColumn) - return (a.columns===nothing && b.columns===nothing) || - (a.columns!==nothing && b.columns!==nothing && a.columns == b.columns) -end +==(a::GroupedColumn, b::GroupedColumn) = a.columns==b.columns Base.show(io::IO, gc::GroupedColumn) = print(io, "Column") diff --git a/src/misc.jl b/src/misc.jl index 70fc7cb36..f9a28aaf9 100644 --- a/src/misc.jl +++ b/src/misc.jl @@ -61,17 +61,7 @@ end function concrete_length(xs) n = 0 for x in xs - if isconcrete(x) - n += 1 - end - end - n -end - -function concrete_length(xs::Array{Union{Missing,T}}) where T - n = 0 - for i = 1:length(xs) - if !ismissing(xs[i]) && isconcrete(xs[i]) + if !ismissing(x) && isconcrete(x) n += 1 end end @@ -136,24 +126,7 @@ function concrete_minmax(xs, xmin::T, xmax::T) where T<:Real end for x in xs - if isconcrete(x) - xT = convert(T, x) - if isnan(xmin) || xT < xmin - xmin = xT - end - if isnan(xmax) || xT > xmax - xmax = xT - end - end - end - xmin, xmax -end - - -function concrete_minmax(xs::Array{Union{Missing,TA}}, xmin::T, xmax::T) where {T<:Real, TA} - for i = 1:length(xs) - if !ismissing(xs[i]) - x = xs[i] + if !ismissing(x) && isconcrete(x) xT = convert(T, x) if isnan(xmin) || xT < xmin xmin = xT @@ -169,24 +142,7 @@ end function concrete_minmax(xs, xmin::T, xmax::T) where T for x in xs - if isconcrete(x) - xT = convert(T, x) - if xT < xmin - xmin = xT - end - if xT > xmax - xmax = xT - end - end - end - xmin, xmax -end - - -function concrete_minmax(xs::Array{Union{Missing,TA}}, xmin::T, xmax::T) where {T, TA} - for i = 1:length(xs) - if !ismissing(xs[i]) - x = xs[i] + if !ismissing(x) && isconcrete(x) xT = convert(T, x) if xT < xmin xmin = xT @@ -404,7 +360,7 @@ discretize_make_ia(values::CategoricalArray) = discretize_make_ia(values, intersect(push!(levels(values), missing), unique(values))) discretize_make_ia(values::CategoricalArray, ::Nothing) = discretize_make_ia(values) function discretize_make_ia(values::CategoricalArray{T}, levels::Vector) where {T} - mapping = Union{Nothing,Int}[coalesce.(indexin(CategoricalArrays.index(values.pool), levels), 0)...] + mapping = something(indexin(CategoricalArrays.index(values.pool), levels), 0) pushfirst!(mapping, coalesce(findfirst(ismissing, levels), 0)) index = [mapping[x+1] for x in values.refs] any(iszero, index) && throw(ArgumentError("values not in levels encountered")) diff --git a/src/statistics.jl b/src/statistics.jl index c9b01b985..50b108b97 100644 --- a/src/statistics.jl +++ b/src/statistics.jl @@ -956,7 +956,7 @@ function apply_statistic_typed(minval::T, maxval::T, vals, size, dsize) where T lensize = length(size) lendsize = length(dsize) for (i, val) in enumerate(vals) - (!Gadfly.isconcrete(val) || !isfinite(val)) && continue + (ismissing(val) || !Gadfly.isconcrete(val) || !isfinite(val)) && continue s = size[mod1(i, lensize)] ds = dsize[mod1(i, lendsize)] @@ -966,21 +966,6 @@ function apply_statistic_typed(minval::T, maxval::T, vals, size, dsize) where T minval, maxval end -function apply_statistic_typed(minval::T, maxval::T, vals::Array{Union{Missing,T}}, size, dsize) where T - lensize = length(size) - lendsize = length(dsize) - for i = 1:length(vals) - ismissing(vals[i]) && continue - - val = vals[i] - s = size[mod1(i, lensize)] - ds = dsize[mod1(i, lendsize)] - - minval, maxval = minvalmaxval(minval, maxval, val, s, ds) - end - minval, maxval -end - function minvalmaxval(minval::T, maxval::T, val, s, ds) where T if val < minval || !isfinite(minval) minval = val @@ -1428,7 +1413,7 @@ function apply_statistic(stat::FunctionStatistic, if aes.color != nothing func_color = aes.color aes.color = Array{eltype(aes.color)}(undef, length(aes.y) * stat.num_samples) - groups = Array{Union{Missing,Int}}(undef, length(aes.y) * stat.num_samples) + groups = Array{Int}(undef, length(aes.y) * stat.num_samples) for i in 1:length(aes.y) aes.color[1+(i-1)*stat.num_samples:i*stat.num_samples] .= func_color[i] groups[1+(i-1)*stat.num_samples:i*stat.num_samples] .= i