From b066a2812623dd93d64fe22d1c513ecee3775d22 Mon Sep 17 00:00:00 2001 From: Bart Janssens Date: Mon, 15 Feb 2021 21:10:32 +0100 Subject: [PATCH] Support missing values --- Project.toml | 2 +- src/UnitfulRecipes.jl | 14 +++++++------- test/runtests.jl | 8 ++++++++ 3 files changed, 16 insertions(+), 8 deletions(-) diff --git a/Project.toml b/Project.toml index 02e0f64..3064f25 100644 --- a/Project.toml +++ b/Project.toml @@ -1,7 +1,7 @@ name = "UnitfulRecipes" uuid = "42071c24-d89e-48dd-8a24-8a12d9b8861f" authors = ["Benoit Pasquier", "Jan Weidner"] -version = "1.0.1" +version = "1.0.2" [deps] RecipesBase = "3cdcf5f2-1ef4-517c-9805-6587b60abb01" diff --git a/src/UnitfulRecipes.jl b/src/UnitfulRecipes.jl index 286ef3d..1330fa9 100644 --- a/src/UnitfulRecipes.jl +++ b/src/UnitfulRecipes.jl @@ -8,7 +8,7 @@ export @P_str Main recipe ==========# -@recipe function f(::Type{T}, x::T) where T <: AbstractArray{<:Quantity} +@recipe function f(::Type{T}, x::T) where T <: AbstractArray{<:Union{Missing,<:Quantity}} axisletter = plotattributes[:letter] # x, y, or z fixaxis!(plotattributes, x, axisletter) end @@ -50,25 +50,25 @@ const AMat{T} = AbstractArray{T,2} where T end # Recipe for vectors of vectors -@recipe function f(::Type{T}, x::T) where T <: AbstractVector{<:AbstractVector{<:Quantity}} +@recipe function f(::Type{T}, x::T) where T <: AbstractVector{<:AbstractVector{<:Union{Missing,<:Quantity}}} axisletter = plotattributes[:letter] # x, y, or z [fixaxis!(plotattributes, x, axisletter) for x in x] end # Recipes for functions -@recipe function f(f::Function, x::T) where T <: AVec{<:Quantity} +@recipe function f(f::Function, x::T) where T <: AVec{<:Union{Missing,<:Quantity}} x, f.(x) end -@recipe function f(x::T, f::Function) where T <: AVec{<:Quantity} +@recipe function f(x::T, f::Function) where T <: AVec{<:Union{Missing,<:Quantity}} x, f.(x) end -@recipe function f(x::T, y::AVec, f::Function) where T <: AVec{<:Quantity} +@recipe function f(x::T, y::AVec, f::Function) where T <: AVec{<:Union{Missing,<:Quantity}} x, y, f.(x',y) end -@recipe function f(x::AVec, y::T, f::Function) where T <: AVec{<:Quantity} +@recipe function f(x::AVec, y::T, f::Function) where T <: AVec{<:Union{Missing,<:Quantity}} x, y, f.(x',y) end -@recipe function f(x::T1, y::T2, f::Function) where {T1<:AVec{<:Quantity}, T2<:AVec{<:Quantity}} +@recipe function f(x::T1, y::T2, f::Function) where {T1<:AVec{<:Union{Missing,<:Quantity}}, T2<:AVec{<:Union{Missing,<:Quantity}}} x, y, f.(x',y) end diff --git a/test/runtests.jl b/test/runtests.jl index 0c82483..8f62a39 100644 --- a/test/runtests.jl +++ b/test/runtests.jl @@ -190,3 +190,11 @@ end @test yguide(plt,1) == "m" @test yguide(plt,2) == "s" end + +@testset "Missing values" begin + x = 1:5 + y = [1.0*u"s", 2.0*u"s", missing, missing, missing] + @show typeof(y) + plt = plot(x,y) + @test yguide(plt,1) == "s" +end