From 6d6d4f14b5625c2ceb48012352af1c3ad389cf45 Mon Sep 17 00:00:00 2001 From: Will Grant Date: Fri, 24 May 2019 11:27:09 +1000 Subject: [PATCH 1/2] add recipes for time periods --- src/recipes.jl | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/recipes.jl b/src/recipes.jl index ca2468e1..c4f052c6 100644 --- a/src/recipes.jl +++ b/src/recipes.jl @@ -1104,10 +1104,21 @@ abline!(args...; kw...) = abline!(current(), args...; kw...) dateformatter(dt) = string(Date(Dates.UTD(dt))) datetimeformatter(dt) = string(DateTime(Dates.UTM(dt))) timeformatter(t) = string(Dates.Time(Dates.Nanosecond(t))) +periodformatter(t) = string(t) @recipe f(::Type{Date}, dt::Date) = (dt -> Dates.value(dt), dateformatter) @recipe f(::Type{DateTime}, dt::DateTime) = (dt -> Dates.value(dt), datetimeformatter) @recipe f(::Type{Dates.Time}, t::Dates.Time) = (t -> Dates.value(t), timeformatter) +@recipe f(::Type{Dates.Nanosecond}, t::Dates.Nanosecond) = (t -> Dates.value(t), periodformatter) +@recipe f(::Type{Dates.Microsecond}, t::Dates.Microsecond) = (t -> Dates.value(t), periodformatter) +@recipe f(::Type{Dates.Millisecond}, t::Dates.Millisecond) = (t -> Dates.value(t), periodformatter) +@recipe f(::Type{Dates.Second}, t::Dates.Second) = (t -> Dates.value(t), periodformatter) +@recipe f(::Type{Dates.Minute}, t::Dates.Minute) = (t -> Dates.value(t), periodformatter) +@recipe f(::Type{Dates.Hour}, t::Dates.Hour) = (t -> Dates.value(t), periodformatter) +@recipe f(::Type{Dates.Day}, t::Dates.Day) = (t -> Dates.value(t), periodformatter) +@recipe f(::Type{Dates.Week}, t::Dates.Week) = (t -> Dates.value(t), periodformatter) +@recipe f(::Type{Dates.Month}, t::Dates.Month) = (t -> Dates.value(t), periodformatter) +@recipe f(::Type{Dates.Year}, t::Dates.Year) = (t -> Dates.value(t), periodformatter) # ------------------------------------------------- # Complex Numbers From 068523fac14edee36783d3d83f33393f17ce6438 Mon Sep 17 00:00:00 2001 From: Will Grant Date: Mon, 17 Jun 2019 17:44:24 +1000 Subject: [PATCH 2/2] neaten change by implementing with a for loop --- src/recipes.jl | 14 +------------- 1 file changed, 1 insertion(+), 13 deletions(-) diff --git a/src/recipes.jl b/src/recipes.jl index c4f052c6..eaab89b3 100644 --- a/src/recipes.jl +++ b/src/recipes.jl @@ -1106,19 +1106,7 @@ datetimeformatter(dt) = string(DateTime(Dates.UTM(dt))) timeformatter(t) = string(Dates.Time(Dates.Nanosecond(t))) periodformatter(t) = string(t) -@recipe f(::Type{Date}, dt::Date) = (dt -> Dates.value(dt), dateformatter) -@recipe f(::Type{DateTime}, dt::DateTime) = (dt -> Dates.value(dt), datetimeformatter) -@recipe f(::Type{Dates.Time}, t::Dates.Time) = (t -> Dates.value(t), timeformatter) -@recipe f(::Type{Dates.Nanosecond}, t::Dates.Nanosecond) = (t -> Dates.value(t), periodformatter) -@recipe f(::Type{Dates.Microsecond}, t::Dates.Microsecond) = (t -> Dates.value(t), periodformatter) -@recipe f(::Type{Dates.Millisecond}, t::Dates.Millisecond) = (t -> Dates.value(t), periodformatter) -@recipe f(::Type{Dates.Second}, t::Dates.Second) = (t -> Dates.value(t), periodformatter) -@recipe f(::Type{Dates.Minute}, t::Dates.Minute) = (t -> Dates.value(t), periodformatter) -@recipe f(::Type{Dates.Hour}, t::Dates.Hour) = (t -> Dates.value(t), periodformatter) -@recipe f(::Type{Dates.Day}, t::Dates.Day) = (t -> Dates.value(t), periodformatter) -@recipe f(::Type{Dates.Week}, t::Dates.Week) = (t -> Dates.value(t), periodformatter) -@recipe f(::Type{Dates.Month}, t::Dates.Month) = (t -> Dates.value(t), periodformatter) -@recipe f(::Type{Dates.Year}, t::Dates.Year) = (t -> Dates.value(t), periodformatter) +@recipe f(::Type{P}, t::P) where P <: Dates.Period = (t -> Dates.value(t), t -> string(P(t))) # ------------------------------------------------- # Complex Numbers