Merge pull request #3180 from ThatcherC/date-xlims
Fix #1531, Let xlims be set to Dates or DateTimes
This commit is contained in:
commit
a403f9e44b
@ -94,6 +94,12 @@ function attr!(axis::Axis, args...; kw...)
|
|||||||
for vi in v
|
for vi in v
|
||||||
discrete_value!(axis, vi)
|
discrete_value!(axis, vi)
|
||||||
end
|
end
|
||||||
|
#could perhaps use TimeType here, as Date and DateTime are both subtypes of TimeType
|
||||||
|
# or could perhaps check if dateformatter or datetimeformatter is in use
|
||||||
|
elseif k == :lims && isa(v, Tuple{Date,Date})
|
||||||
|
plotattributes[k] = (v[1].instant.periods.value, v[2].instant.periods.value)
|
||||||
|
elseif k == :lims && isa(v, Tuple{DateTime,DateTime})
|
||||||
|
plotattributes[k] = (v[1].instant.periods.value, v[2].instant.periods.value)
|
||||||
else
|
else
|
||||||
plotattributes[k] = v
|
plotattributes[k] = v
|
||||||
end
|
end
|
||||||
|
|||||||
@ -13,4 +13,48 @@ using Plots, Test, Dates
|
|||||||
ref_xlims = (x[1].instant.periods.value, x[end].instant.periods.value)
|
ref_xlims = (x[1].instant.periods.value, x[end].instant.periods.value)
|
||||||
@test Plots.ylims(p) == ref_ylims
|
@test Plots.ylims(p) == ref_ylims
|
||||||
@test Plots.xlims(p) == ref_xlims
|
@test Plots.xlims(p) == ref_xlims
|
||||||
|
#@static if (haskey(ENV, "APPVEYOR") || haskey(ENV, "CI"))
|
||||||
|
@static if haskey(ENV, "APPVEYOR")
|
||||||
|
@info "Skipping display tests on AppVeyor"
|
||||||
|
else
|
||||||
|
@test isa(display(p), Nothing) == true
|
||||||
|
closeall()
|
||||||
|
end
|
||||||
|
end # testset
|
||||||
|
|
||||||
|
@testset "Date xlims" begin
|
||||||
|
y=[1.0*i*i for i in 1:10]
|
||||||
|
x=[Date(2019,11,i) for i in 1:10]
|
||||||
|
span = (Date(2019,10,31), Date(2019,11,11))
|
||||||
|
|
||||||
|
ref_xlims = map(date->date.instant.periods.value, span)
|
||||||
|
|
||||||
|
p = plot(x,y, xlims=span, widen = false)
|
||||||
|
|
||||||
|
@test Plots.xlims(p) == ref_xlims
|
||||||
|
#@static if (haskey(ENV, "APPVEYOR") || haskey(ENV, "CI"))
|
||||||
|
@static if haskey(ENV, "APPVEYOR")
|
||||||
|
@info "Skipping display tests on AppVeyor"
|
||||||
|
else
|
||||||
|
@test isa(display(p), Nothing) == true
|
||||||
|
closeall()
|
||||||
|
end
|
||||||
|
end # testset
|
||||||
|
|
||||||
|
@testset "DateTime xlims" begin
|
||||||
|
y=[1.0*i*i for i in 1:10]
|
||||||
|
x=[DateTime(2019,11,i,11) for i in 1:10]
|
||||||
|
span = (DateTime(2019,10,31,11,59,59), DateTime(2019,11,11,12,01,15))
|
||||||
|
|
||||||
|
ref_xlims = map(date->date.instant.periods.value, span)
|
||||||
|
|
||||||
|
p = plot(x,y, xlims=span, widen = false)
|
||||||
|
@test Plots.xlims(p) == ref_xlims
|
||||||
|
#@static if (haskey(ENV, "APPVEYOR") || haskey(ENV, "CI"))
|
||||||
|
@static if haskey(ENV, "APPVEYOR")
|
||||||
|
@info "Skipping display tests on AppVeyor"
|
||||||
|
else
|
||||||
|
@test isa(display(p), Nothing) == true
|
||||||
|
closeall()
|
||||||
|
end
|
||||||
end # testset
|
end # testset
|
||||||
|
|||||||
@ -32,10 +32,10 @@ include("test_defaults.jl")
|
|||||||
include("test_axes.jl")
|
include("test_axes.jl")
|
||||||
include("test_axis_letter.jl")
|
include("test_axis_letter.jl")
|
||||||
include("test_components.jl")
|
include("test_components.jl")
|
||||||
|
include("integration_dates.jl")
|
||||||
include("test_recipes.jl")
|
include("test_recipes.jl")
|
||||||
include("test_hdf5plots.jl")
|
include("test_hdf5plots.jl")
|
||||||
include("test_pgfplotsx.jl")
|
include("test_pgfplotsx.jl")
|
||||||
include("integration_dates.jl")
|
|
||||||
|
|
||||||
reference_dir(args...) = joinpath(homedir(), ".julia", "dev", "PlotReferenceImages", args...)
|
reference_dir(args...) = joinpath(homedir(), ".julia", "dev", "PlotReferenceImages", args...)
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user