From a7f2484d4580ed2b09618124c368037a4ea8251e Mon Sep 17 00:00:00 2001 From: Daniel Schwabeneder Date: Wed, 4 Jul 2018 20:56:13 +0200 Subject: [PATCH] fix some deprecation warnings --- REQUIRE | 3 +-- src/Plots.jl | 44 ++++++++++++++++++------------------ src/args.jl | 10 ++++---- src/backends/glvisualize.jl | 4 ++-- src/backends/gr.jl | 20 ++++++++-------- src/backends/hdf5.jl | 2 +- src/backends/inspectdr.jl | 2 +- src/backends/pgfplots.jl | 9 ++++---- src/backends/plotly.jl | 2 +- src/backends/plotlyjs.jl | 4 ++-- src/backends/pyplot.jl | 8 +++---- src/backends/unicodeplots.jl | 4 ++-- src/backends/web.jl | 10 ++++---- src/components.jl | 9 ++++---- src/examples.jl | 12 +++++----- src/layouts.jl | 10 ++++---- src/output.jl | 7 +++--- src/pipeline.jl | 8 ++++--- src/plot.jl | 3 +-- src/recipes.jl | 4 ++-- src/themes.jl | 2 +- src/utils.jl | 8 +++---- test/REQUIRE | 1 - 23 files changed, 94 insertions(+), 92 deletions(-) diff --git a/REQUIRE b/REQUIRE index b64b796b..b9cf9457 100644 --- a/REQUIRE +++ b/REQUIRE @@ -1,4 +1,4 @@ -julia 0.7 +julia 0.7-alpha RecipesBase 0.2.3 PlotUtils 0.4.1 @@ -14,4 +14,3 @@ NaNMath Requires Contour GR 0.31.0 -Dates diff --git a/src/Plots.jl b/src/Plots.jl index d3b71cea..73b91da3 100644 --- a/src/Plots.jl +++ b/src/Plots.jl @@ -6,7 +6,7 @@ using Reexport import StaticArrays using StaticArrays.FixedSizeArrays -using Dates +using Dates, Printf, Statistics, Base64 @reexport using RecipesBase import RecipesBase: plot, plot!, animate @@ -265,29 +265,29 @@ xgrid!(args...; kw...) = plot!(; xgrid = args ygrid!(args...; kw...) = plot!(; ygrid = args, kw...) let PlotOrSubplot = Union{Plot, Subplot} - title!(plt::PlotOrSubplot, s::AbstractString; kw...) = plot!(plt; title = s, kw...) - xlabel!(plt::PlotOrSubplot, s::AbstractString; kw...) = plot!(plt; xlabel = s, kw...) - ylabel!(plt::PlotOrSubplot, s::AbstractString; kw...) = plot!(plt; ylabel = s, kw...) - xlims!(plt::PlotOrSubplot, lims::Tuple{T,S}; kw...) where {T<:Real,S<:Real} = plot!(plt; xlims = lims, kw...) - ylims!(plt::PlotOrSubplot, lims::Tuple{T,S}; kw...) where {T<:Real,S<:Real} = plot!(plt; ylims = lims, kw...) - zlims!(plt::PlotOrSubplot, lims::Tuple{T,S}; kw...) where {T<:Real,S<:Real} = plot!(plt; zlims = lims, kw...) - xlims!(plt::PlotOrSubplot, xmin::Real, xmax::Real; kw...) = plot!(plt; xlims = (xmin,xmax), kw...) - ylims!(plt::PlotOrSubplot, ymin::Real, ymax::Real; kw...) = plot!(plt; ylims = (ymin,ymax), kw...) - zlims!(plt::PlotOrSubplot, zmin::Real, zmax::Real; kw...) = plot!(plt; zlims = (zmin,zmax), kw...) - xticks!(plt::PlotOrSubplot, ticks::AVec{T}; kw...) where {T<:Real} = plot!(plt; xticks = ticks, kw...) - yticks!(plt::PlotOrSubplot, ticks::AVec{T}; kw...) where {T<:Real} = plot!(plt; yticks = ticks, kw...) - xticks!(plt::PlotOrSubplot, + global title!(plt::PlotOrSubplot, s::AbstractString; kw...) = plot!(plt; title = s, kw...) + global xlabel!(plt::PlotOrSubplot, s::AbstractString; kw...) = plot!(plt; xlabel = s, kw...) + global ylabel!(plt::PlotOrSubplot, s::AbstractString; kw...) = plot!(plt; ylabel = s, kw...) + global xlims!(plt::PlotOrSubplot, lims::Tuple{T,S}; kw...) where {T<:Real,S<:Real} = plot!(plt; xlims = lims, kw...) + global ylims!(plt::PlotOrSubplot, lims::Tuple{T,S}; kw...) where {T<:Real,S<:Real} = plot!(plt; ylims = lims, kw...) + global zlims!(plt::PlotOrSubplot, lims::Tuple{T,S}; kw...) where {T<:Real,S<:Real} = plot!(plt; zlims = lims, kw...) + global xlims!(plt::PlotOrSubplot, xmin::Real, xmax::Real; kw...) = plot!(plt; xlims = (xmin,xmax), kw...) + global ylims!(plt::PlotOrSubplot, ymin::Real, ymax::Real; kw...) = plot!(plt; ylims = (ymin,ymax), kw...) + global zlims!(plt::PlotOrSubplot, zmin::Real, zmax::Real; kw...) = plot!(plt; zlims = (zmin,zmax), kw...) + global xticks!(plt::PlotOrSubplot, ticks::AVec{T}; kw...) where {T<:Real} = plot!(plt; xticks = ticks, kw...) + global yticks!(plt::PlotOrSubplot, ticks::AVec{T}; kw...) where {T<:Real} = plot!(plt; yticks = ticks, kw...) + global xticks!(plt::PlotOrSubplot, ticks::AVec{T}, labels::AVec{S}; kw...) where {T<:Real,S<:AbstractString} = plot!(plt; xticks = (ticks,labels), kw...) - yticks!(plt::PlotOrSubplot, + global yticks!(plt::PlotOrSubplot, ticks::AVec{T}, labels::AVec{S}; kw...) where {T<:Real,S<:AbstractString} = plot!(plt; yticks = (ticks,labels), kw...) - xgrid!(plt::PlotOrSubplot, args...; kw...) = plot!(plt; xgrid = args, kw...) - ygrid!(plt::PlotOrSubplot, args...; kw...) = plot!(plt; ygrid = args, kw...) - annotate!(plt::PlotOrSubplot, anns...; kw...) = plot!(plt; annotation = anns, kw...) - annotate!(plt::PlotOrSubplot, anns::AVec{T}; kw...) where {T<:Tuple} = plot!(plt; annotation = anns, kw...) - xflip!(plt::PlotOrSubplot, flip::Bool = true; kw...) = plot!(plt; xflip = flip, kw...) - yflip!(plt::PlotOrSubplot, flip::Bool = true; kw...) = plot!(plt; yflip = flip, kw...) - xaxis!(plt::PlotOrSubplot, args...; kw...) = plot!(plt; xaxis = args, kw...) - yaxis!(plt::PlotOrSubplot, args...; kw...) = plot!(plt; yaxis = args, kw...) + global xgrid!(plt::PlotOrSubplot, args...; kw...) = plot!(plt; xgrid = args, kw...) + global ygrid!(plt::PlotOrSubplot, args...; kw...) = plot!(plt; ygrid = args, kw...) + global annotate!(plt::PlotOrSubplot, anns...; kw...) = plot!(plt; annotation = anns, kw...) + global annotate!(plt::PlotOrSubplot, anns::AVec{T}; kw...) where {T<:Tuple} = plot!(plt; annotation = anns, kw...) + global xflip!(plt::PlotOrSubplot, flip::Bool = true; kw...) = plot!(plt; xflip = flip, kw...) + global yflip!(plt::PlotOrSubplot, flip::Bool = true; kw...) = plot!(plt; yflip = flip, kw...) + global xaxis!(plt::PlotOrSubplot, args...; kw...) = plot!(plt; xaxis = args, kw...) + global yaxis!(plt::PlotOrSubplot, args...; kw...) = plot!(plt; yaxis = args, kw...) end diff --git a/src/args.jl b/src/args.jl index cf352660..e9bfa36c 100644 --- a/src/args.jl +++ b/src/args.jl @@ -15,7 +15,7 @@ function add_non_underscore_aliases!(aliases::Dict{Symbol,Symbol}) for (k,v) in aliases s = string(k) if '_' in s - aliases[Symbol(replace(s, "_", ""))] = v + aliases[Symbol(replace(s, "_" => ""))] = v end end end @@ -176,7 +176,7 @@ const _positionAliases = Dict{Symbol,Symbol}( const _allScales = [:identity, :ln, :log2, :log10, :asinh, :sqrt] const _logScales = [:ln, :log2, :log10] -const _logScaleBases = Dict(:ln => e, :log2 => 2.0, :log10 => 10.0) +const _logScaleBases = Dict(:ln => ℯ, :log2 => 2.0, :log10 => 10.0) const _scaleAliases = Dict{Symbol,Symbol}( :none => :identity, :log => :log10, @@ -192,7 +192,7 @@ hasgrid(arg::Nothing, letter) = false hasgrid(arg::Bool, letter) = arg function hasgrid(arg::Symbol, letter) if arg in _allGridSyms - arg in (:all, :both, :on) || contains(string(arg), string(letter)) + arg in (:all, :both, :on) || occursin(string(letter), string(arg)) else warn("Unknown grid argument $arg; $(Symbol(letter, :grid)) was set to `true` instead.") true @@ -210,7 +210,7 @@ showaxis(arg::Nothing, letter) = false showaxis(arg::Bool, letter) = arg function showaxis(arg::Symbol, letter) if arg in _allGridSyms - arg in (:all, :both, :on, :yes) || contains(string(arg), string(letter)) + arg in (:all, :both, :on, :yes) || occursin(string(letter), string(arg)) else warn("Unknown showaxis argument $arg; $(Symbol(letter, :showaxis)) was set to `true` instead.") true @@ -1029,7 +1029,7 @@ function extractGroupArgs(vs::Tuple, args...) end # allow passing NamedTuples for a named legend entry -@require NamedTuples begin +@require NamedTuples = "73a701b4-84e1-5df0-88ff-1968ee2ee8dc" begin legendEntryFromTuple(ns::NamedTuples.NamedTuple) = join(["$k = $v" for (k, v) in zip(keys(ns), values(ns))], ", ") diff --git a/src/backends/glvisualize.jl b/src/backends/glvisualize.jl index d4a9325e..2ec0b928 100644 --- a/src/backends/glvisualize.jl +++ b/src/backends/glvisualize.jl @@ -9,7 +9,7 @@ TODO * fix units in all visuals (e.g dotted lines, marker scale, surfaces) =# -@require Revise begin +@require Revise = "295af30f-e4ad-537b-8983-00126c2a3abe" begin Revise.track(Plots, joinpath(Pkg.dir("Plots"), "src", "backends", "glvisualize.jl")) end @@ -1005,7 +1005,7 @@ end function scale_for_annotations!(series::Series, scaletype::Symbol = :pixels) anns = series[:series_annotations] - if anns != nothing && !isnull(anns.baseshape) + if anns != nothing && anns.baseshape != nothing # we use baseshape to overwrite the markershape attribute # with a list of custom shapes for each msw, msh = anns.scalefactor diff --git a/src/backends/gr.jl b/src/backends/gr.jl index b2d512c2..fc621591 100644 --- a/src/backends/gr.jl +++ b/src/backends/gr.jl @@ -3,7 +3,7 @@ # significant contributions by @jheinen -@require Revise begin +@require Revise = "295af30f-e4ad-537b-8983-00126c2a3abe" begin Revise.track(Plots, joinpath(Pkg.dir("Plots"), "src", "backends", "gr.jl")) end @@ -196,7 +196,7 @@ gr_inqtext(x, y, s::Symbol) = gr_inqtext(x, y, string(s)) function gr_inqtext(x, y, s) if length(s) >= 2 && s[1] == '$' && s[end] == '$' GR.inqtextext(x, y, s[2:end-1]) - elseif search(s, '\\') != 0 || contains(s, "10^{") + elseif something(findfirst(isequal('\\'), s), 0) != 0 || occursin("10^{", s) GR.inqtextext(x, y, s) else GR.inqtext(x, y, s) @@ -208,7 +208,7 @@ gr_text(x, y, s::Symbol) = gr_text(x, y, string(s)) function gr_text(x, y, s) if length(s) >= 2 && s[1] == '$' && s[end] == '$' GR.mathtex(x, y, s[2:end-1]) - elseif search(s, '\\') != 0 || contains(s, "10^{") + elseif something(findfirst(isequal('\\'), s), 0) != 0 || occursin("10^{", s) GR.textext(x, y, s) else GR.text(x, y, s) @@ -502,16 +502,16 @@ function gr_legend_pos(s::Symbol,w,h) if str == "best" str = "topright" end - if contains(str,"right") + if occursin("right", str) xpos = viewport_plotarea[2] - 0.05 - w - elseif contains(str,"left") + elseif occursin("left", str) xpos = viewport_plotarea[1] + 0.11 else xpos = (viewport_plotarea[2]-viewport_plotarea[1])/2 - w/2 +.04 end - if contains(str,"top") + if occursin("top", str) ypos = viewport_plotarea[4] - 0.06 - elseif contains(str,"bottom") + elseif occursin("bottom", str) ypos = viewport_plotarea[3] + h + 0.06 else ypos = (viewport_plotarea[4]-viewport_plotarea[3])/2 + h/2 @@ -1069,7 +1069,7 @@ function gr_display(sp::Subplot{GRBackend}, w, h, viewport_canvas) if cmap gr_set_line(1, :solid, yaxis[:foreground_color_axis]) gr_set_viewport_cmap(sp) - l = (length(h) > 1) ? round.(Int32, 1000 + (h - ignorenan_minimum(h)) / (ignorenan_maximum(h) - ignorenan_minimum(h)) * 255) : Int32[1000, 1255] + l = (length(h) > 1) ? round.(Int32, 1000 .+ (h .- ignorenan_minimum(h)) ./ (ignorenan_maximum(h) - ignorenan_minimum(h)) .* 255) : Int32[1000, 1255] GR.setwindow(xmin, xmax, zmin, zmax) GR.cellarray(xmin, xmax, zmax, zmin, 1, length(l), l) ztick = 0.5 * GR.tick(zmin, zmax) @@ -1358,10 +1358,10 @@ const _gr_mimeformats = Dict( "image/svg+xml" => "svg", ) -const _gr_wstype_default = @static if is_linux() +const _gr_wstype_default = @static if Sys.islinux() "x11" # "cairox11" -elseif is_apple() +elseif Sys.isapple() "quartz" else "use_default" diff --git a/src/backends/hdf5.jl b/src/backends/hdf5.jl index e677a0cd..0d8c1901 100644 --- a/src/backends/hdf5.jl +++ b/src/backends/hdf5.jl @@ -28,7 +28,7 @@ Read from .hdf5 file using: - Should be reliable for archival purposes. ==# -@require Revise begin +@require Revise = "295af30f-e4ad-537b-8983-00126c2a3abe" begin Revise.track(Plots, joinpath(Pkg.dir("Plots"), "src", "backends", "hdf5.jl")) end diff --git a/src/backends/inspectdr.jl b/src/backends/inspectdr.jl index fac6761f..3eb8e5fc 100644 --- a/src/backends/inspectdr.jl +++ b/src/backends/inspectdr.jl @@ -13,7 +13,7 @@ Add in functionality to Plots.jl: :aspect_ratio, =# -@require Revise begin +@require Revise = "295af30f-e4ad-537b-8983-00126c2a3abe" begin Revise.track(Plots, joinpath(Pkg.dir("Plots"), "src", "backends", "inspectdr.jl")) end diff --git a/src/backends/pgfplots.jl b/src/backends/pgfplots.jl index f9d4c3a0..ab5f8bee 100644 --- a/src/backends/pgfplots.jl +++ b/src/backends/pgfplots.jl @@ -2,7 +2,7 @@ # significant contributions by: @pkofod -@require Revise begin +@require Revise = "295af30f-e4ad-537b-8983-00126c2a3abe" begin Revise.track(Plots, joinpath(Pkg.dir("Plots"), "src", "backends", "pgfplots.jl")) end @@ -426,11 +426,12 @@ function pgf_axis(sp::Subplot, letter) push!(style, string(letter, "tick = {", join(tick_values,","), "}")) if axis[:showaxis] && axis[:scale] in (:ln, :log2, :log10) && axis[:ticks] == :auto # wrap the power part of label with } - tick_labels = String[begin + tick_labels = Vector{String}(length(ticks[2])) + for (i, label) in enumerate(ticks[2]) base, power = split(label, "^") power = string("{", power, "}") - string(base, "^", power) - end for label in ticks[2]] + tick_labels[i] = string(base, "^", power) + end push!(style, string(letter, "ticklabels = {\$", join(tick_labels,"\$,\$"), "\$}")) elseif axis[:showaxis] tick_labels = ispolar(sp) && letter == :x ? [ticks[2][3:end]..., "0", "45"] : ticks[2] diff --git a/src/backends/plotly.jl b/src/backends/plotly.jl index c630afb8..0b4c44d4 100644 --- a/src/backends/plotly.jl +++ b/src/backends/plotly.jl @@ -1,7 +1,7 @@ # https://plot.ly/javascript/getting-started -@require Revise begin +@require Revise = "295af30f-e4ad-537b-8983-00126c2a3abe" begin Revise.track(Plots, joinpath(Pkg.dir("Plots"), "src", "backends", "plotly.jl")) end diff --git a/src/backends/plotlyjs.jl b/src/backends/plotlyjs.jl index e2883220..a371888c 100644 --- a/src/backends/plotlyjs.jl +++ b/src/backends/plotlyjs.jl @@ -1,4 +1,4 @@ -@require Revise begin +@require Revise = "295af30f-e4ad-537b-8983-00126c2a3abe" begin Revise.track(Plots, joinpath(Pkg.dir("Plots"), "src", "backends", "plotlyjs.jl")) end @@ -120,7 +120,7 @@ function _display(plt::Plot{PlotlyJSBackend}) end end -@require WebIO begin +@require WebIO = "0f1e0344-ec1d-5b48-a673-e5cf874b6c29" begin function WebIO.render(plt::Plot{PlotlyJSBackend}) prepare_output(plt) WebIO.render(plt.o) diff --git a/src/backends/pyplot.jl b/src/backends/pyplot.jl index b6b4d023..5338eedf 100644 --- a/src/backends/pyplot.jl +++ b/src/backends/pyplot.jl @@ -1,7 +1,7 @@ # https://github.com/stevengj/PyPlot.jl -@require Revise begin +@require Revise = "295af30f-e4ad-537b-8983-00126c2a3abe" begin Revise.track(Plots, joinpath(Pkg.dir("Plots"), "src", "backends", "pyplot.jl")) end @@ -679,8 +679,8 @@ function py_add_series(plt::Plot{PyPlotBackend}, series::Series) if typeof(z) <: AbstractMatrix || typeof(z) <: Surface x, y, z = map(Array, (x,y,z)) if !ismatrix(x) || !ismatrix(y) - x = repmat(x', length(y), 1) - y = repmat(y, 1, length(series[:x])) + x = repeat(x', length(y), 1) + y = repeat(y, 1, length(series[:x])) end z = transpose_z(series, z) if st == :surface @@ -919,7 +919,7 @@ function py_set_scale(ax, axis::Axis) "linear" else kw[Symbol(:base,letter)] = if scale == :ln - e + ℯ elseif scale == :log2 2 elseif scale == :log10 diff --git a/src/backends/unicodeplots.jl b/src/backends/unicodeplots.jl index f644966d..4ed936cb 100644 --- a/src/backends/unicodeplots.jl +++ b/src/backends/unicodeplots.jl @@ -1,7 +1,7 @@ # https://github.com/Evizero/UnicodePlots.jl -@require Revise begin +@require Revise = "295af30f-e4ad-537b-8983-00126c2a3abe" begin Revise.track(Plots, joinpath(Pkg.dir("Plots"), "src", "backends", "unicodeplots.jl")) end @@ -183,7 +183,7 @@ function png(plt::AbstractPlot{UnicodePlotsBackend}, fn::AbstractString) gui(plt) # @osx_only begin - @static if is_apple() + @static if Sys.isapple() # BEGIN HACK # wait while the plot gets drawn diff --git a/src/backends/web.jl b/src/backends/web.jl index 5c4f8f5b..bb39a91d 100644 --- a/src/backends/web.jl +++ b/src/backends/web.jl @@ -2,8 +2,8 @@ # NOTE: backend should implement `html_body` and `html_head` # CREDIT: parts of this implementation were inspired by @joshday's PlotlyLocal.jl -@require Revise begin - Revise.track(Plots, joinpath(Pkg.dir("Plots"), "src", "backends", "web.jl")) +@require Revise = "295af30f-e4ad-537b-8983-00126c2a3abe" begin + Revise.track(Plots, joinpath(Pkg.dir("Plots"), "src", "backends", "web.jl")) end function standalone_html(plt::AbstractPlot; title::AbstractString = get(plt.attr, :window_title, "Plots.jl")) @@ -23,13 +23,13 @@ function standalone_html(plt::AbstractPlot; title::AbstractString = get(plt.attr end function open_browser_window(filename::AbstractString) - @static if is_apple() + @static if Sys.isapple() return run(`open $(filename)`) end - @static if is_linux() || is_bsd() # is_bsd() addition is as yet untested, but based on suggestion in https://github.com/JuliaPlots/Plots.jl/issues/681 + @static if Sys.islinux() || is_bsd() # is_bsd() addition is as yet untested, but based on suggestion in https://github.com/JuliaPlots/Plots.jl/issues/681 return run(`xdg-open $(filename)`) end - @static if is_windows() + @static if Sys.iswindows() return run(`$(ENV["COMSPEC"]) /c start "" "$(filename)"`) end @warn("Unknown OS... cannot open browser window.") diff --git a/src/components.jl b/src/components.jl index 49b95a5b..8ca11574 100644 --- a/src/components.jl +++ b/src/components.jl @@ -486,12 +486,13 @@ function series_annotations_shapes!(series::Series, scaletype::Symbol = :pixels) # end # @show msw msh - if anns != nothing && !isnull(anns.baseshape) + if anns != nothing && anns.baseshape != nothing # we use baseshape to overwrite the markershape attribute # with a list of custom shapes for each msw,msh = anns.scalefactor msize = Float64[] - shapes = Shape[begin + shapes = Vector{Shape}(length(anns.strs)) + for i in eachindex(anns.strs) str = _cycle(anns.strs,i) # get the width and height of the string (in mm) @@ -509,8 +510,8 @@ function series_annotations_shapes!(series::Series, scaletype::Symbol = :pixels) maxscale = max(xscale, yscale) push!(msize, maxscale) baseshape = _cycle(get(anns.baseshape),i) - shape = scale(baseshape, msw*xscale/maxscale, msh*yscale/maxscale, (0,0)) - end for i=1:length(anns.strs)] + shapes[i] = scale(baseshape, msw*xscale/maxscale, msh*yscale/maxscale, (0,0)) + end series[:markershape] = shapes series[:markersize] = msize end diff --git a/src/examples.jl b/src/examples.jl index c1365ae3..b749aacb 100644 --- a/src/examples.jl +++ b/src/examples.jl @@ -157,7 +157,7 @@ PlotExample("Marker types", markers = reshape(markers, 1, length(markers)) n = length(markers) x = range(0, stop=10, length=n+2)[2:end-1] - y = repmat(reshape(reverse(x),1,:), n, 1) + y = repeat(reshape(reverse(x),1,:), n, 1) scatter(x, y, m=(8,:auto), lab=map(string,markers), bg=:linen, xlim=(0,10), ylim=(0,10)) end)] ), @@ -269,8 +269,8 @@ unfilled contour from a matrix. x = 1:0.5:20 y = 1:0.5:10 f(x,y) = (3x+y^2)*abs(sin(x)+cos(y)) - X = repmat(reshape(x,1,:), length(y), 1) - Y = repmat(y, 1, length(x)) + X = repeat(reshape(x,1,:), length(y), 1) + Y = repeat(y, 1, length(x)) Z = map(f, X, Y) p1 = contour(x, y, f, fill=true) p2 = contour(x, y, Z) @@ -377,8 +377,8 @@ PlotExample("Animation with subplots", PlotExample("Spy", """ -For a matrix `mat` with unique nonzeros `spy(mat)` returns a colorless plot. If `mat` has -various different nonzero values, a colorbar is added. The colorbar can be disabled with +For a matrix `mat` with unique nonzeros `spy(mat)` returns a colorless plot. If `mat` has +various different nonzero values, a colorbar is added. The colorbar can be disabled with `legend = nothing`. """, [:(begin @@ -419,7 +419,7 @@ attribute. The default framestyle is `:axes`. PlotExample("Lines and markers with varying colors", """ You can use the `line_z` and `marker_z` properties to associate a color with -each line segment or marker in the plot. +each line segment or marker in the plot. """, [:(begin t = range(0, stop=1, length=100) diff --git a/src/layouts.jl b/src/layouts.jl index 16a9ad99..8999cf62 100644 --- a/src/layouts.jl +++ b/src/layouts.jl @@ -268,7 +268,7 @@ function GridLayout(dims...; widths = zeros(dims[2]), heights = zeros(dims[1]), kw...) - grid = Matrix{AbstractLayout}(dims...) + grid = Matrix{AbstractLayout}(undef, dims...) layout = GridLayout( parent, (20mm, 5mm, 2mm, 10mm), @@ -357,10 +357,10 @@ function update_child_bboxes!(layout::GridLayout, minimum_perimeter = [0mm,0mm,0 # get the max horizontal (left and right) padding over columns, # and max vertical (bottom and top) padding over rows # TODO: add extra padding here - pad_left = maximum(minpad_left, 1) - pad_top = maximum(minpad_top, 2) - pad_right = maximum(minpad_right, 1) - pad_bottom = maximum(minpad_bottom, 2) + pad_left = maximum(minpad_left, dims = 1) + pad_top = maximum(minpad_top, dims = 2) + pad_right = maximum(minpad_right, dims = 1) + pad_bottom = maximum(minpad_bottom, dims = 2) # make sure the perimeter match the parent pad_left[1] = max(pad_left[1], minimum_perimeter[1]) diff --git a/src/output.jl b/src/output.jl index 75a937bf..c4dec4f4 100644 --- a/src/output.jl +++ b/src/output.jl @@ -146,7 +146,8 @@ function Base.display(::PlotsDisplay, plt::Plot) end # override the REPL display to open a gui window -Base.display(::Base.REPL.REPLDisplay, ::MIME"text/plain", plt::Plot) = gui(plt) +using REPL +Base.display(::REPL.REPLDisplay, ::MIME"text/plain", plt::Plot) = gui(plt) _do_plot_show(plt, showval::Bool) = showval && gui(plt) @@ -254,7 +255,7 @@ end # IJulia # --------------------------------------------------------- -@require IJulia begin +@require IJulia = "7073ff75-c697-5162-941a-fcdaad2a7d2a" begin if IJulia.inited """ @@ -310,7 +311,7 @@ end # --------------------------------------------------------- # Atom PlotPane # --------------------------------------------------------- -@require Juno begin +@require Juno = "e5e0dc1b-0480-54bc-9374-aad01c23163d" begin import Hiccup, Media if Juno.isactive() diff --git a/src/pipeline.jl b/src/pipeline.jl index 4a7c1cd1..411b83bf 100644 --- a/src/pipeline.jl +++ b/src/pipeline.jl @@ -11,11 +11,13 @@ function _expand_seriestype_array(d::KW, args) sts = get(d, :seriestype, :path) if typeof(sts) <: AbstractArray delete!(d, :seriestype) - RecipeData[begin + rd = Vector{RecipeData}(size(sts, 1)) + for r in 1:size(sts, 1) dc = copy(d) dc[:seriestype] = sts[r:r,:] - RecipeData(dc, args) - end for r=1:size(sts,1)] + rd[i] = RecipeData(dc, args) + end + rd else RecipeData[RecipeData(copy(d), args)] end diff --git a/src/plot.jl b/src/plot.jl index cafd711a..877c39c8 100644 --- a/src/plot.jl +++ b/src/plot.jl @@ -46,9 +46,8 @@ When you pass in matrices, it splits by columns. To see the list of available at function, where `attr` is the symbol `:Series:`, `:Subplot:`, `:Plot` or `:Axis`. Pass any attribute to `plotattr` as a String to look up its docstring; e.g. `plotattr("seriestype")`. """ - -# this creates a new plot with args/kw and sets it to be the current plot function plot(args...; kw...) + # this creates a new plot with args/kw and sets it to be the current plot d = KW(kw) preprocessArgs!(d) diff --git a/src/recipes.jl b/src/recipes.jl index 0b7d1230..dab7cfef 100644 --- a/src/recipes.jl +++ b/src/recipes.jl @@ -80,7 +80,7 @@ end @recipe function f(::Type{Val{:hline}}, x, y, z) n = length(y) - newx = repmat(Float64[-1, 1, NaN], n) + newx = repeat(Float64[-1, 1, NaN], n) newy = vec(Float64[yi for i=1:3,yi=y]) x := newx y := newy @@ -92,7 +92,7 @@ end @recipe function f(::Type{Val{:vline}}, x, y, z) n = length(y) newx = vec(Float64[yi for i=1:3,yi=y]) - newy = repmat(Float64[-1, 1, NaN], n) + newy = repeat(Float64[-1, 1, NaN], n) x := newx y := newy seriestype := :straightline diff --git a/src/themes.jl b/src/themes.jl index c2b2aee1..5d1c032f 100644 --- a/src/themes.jl +++ b/src/themes.jl @@ -93,7 +93,7 @@ _get_showtheme_args(thm::Symbol, func::Symbol) = thm, get(_color_functions, func cfunc(RGB(def)) elseif eltype(def) <: Colorant cfunc.(RGB.(def)) - elseif contains(string(arg), "color") + elseif occursin("color", string(arg)) cfunc.(RGB.(plot_color.(def))) else def diff --git a/src/utils.jl b/src/utils.jl index 854a5c99..5a840c36 100644 --- a/src/utils.jl +++ b/src/utils.jl @@ -344,7 +344,7 @@ function replaceAliases!(d::KW, aliases::Dict{Symbol,Symbol}) end end -createSegments(z) = collect(repmat(reshape(z,1,:),2,1))[2:end] +createSegments(z) = collect(repeat(reshape(z,1,:),2,1))[2:end] Base.first(c::Colorant) = c Base.first(x::Symbol) = x @@ -356,7 +356,7 @@ sortedkeys(d::Dict) = sort(collect(keys(d))) const _scale_base = Dict{Symbol, Real}( :log10 => 10, :log2 => 2, - :ln => e, + :ln => ℯ, ) function _heatmap_edges(v::AVec) @@ -1139,9 +1139,9 @@ function convert_sci_unicode(label::AbstractString) "×10" => "×10^{", ) for key in keys(unicode_dict) - label = replace(label, key, unicode_dict[key]) + label = replace(label, key => unicode_dict[key]) end - if contains(label, "10^{") + if occursin("10^{", label) label = string(label, "}") end label diff --git a/test/REQUIRE b/test/REQUIRE index a7b6c784..09681156 100644 --- a/test/REQUIRE +++ b/test/REQUIRE @@ -6,4 +6,3 @@ GR 0.31.0 RDatasets VisualRegressionTests UnicodePlots -Test