Compare commits

..
11 changed files with 34 additions and 82 deletions
+3 -3
View File
@@ -40,7 +40,7 @@ jobs:
- name: Install dependencies
run: |
julia --project -e 'using Pkg; Pkg.instantiate();'
julia -e 'using Pkg; Pkg.add( PackageSpec(url="https://github.com/aminya/CompileBot.jl", rev = "master") ); Pkg.develop(PackageSpec(; path=pwd())); using CompileBot; CompileBot.addtestdep();'
julia -e 'using Pkg; Pkg.add( PackageSpec(url="https://github.com/aminya/SnoopCompileBot.jl", rev = "master") ); Pkg.develop(PackageSpec(; path=pwd())); using SnoopCompileBot; SnoopCompileBot.addtestdep();'
# TESTCMD
@@ -72,8 +72,8 @@ jobs:
- name: Download all
uses: actions/download-artifact@v2
- name: CompileBot postprocess
run: julia -e 'using Pkg; Pkg.add( PackageSpec(url="https://github.com/aminya/CompileBot.jl", rev = "master") ); using CompileBot; CompileBot.postprocess();'
- name: SnoopCompileBot postprocess
run: julia -e 'using Pkg; Pkg.add( PackageSpec(url="https://github.com/aminya/SnoopCompileBot.jl", rev = "master") ); using SnoopCompileBot; SnoopCompileBot.postprocess();'
- name: Create Pull Request
uses: peter-evans/create-pull-request@v3
+1 -1
View File
@@ -1,7 +1,7 @@
name = "Plots"
uuid = "91a5bcdd-55d7-5caf-9e0b-520d859cae80"
author = ["Tom Breloff (@tbreloff)"]
version = "1.6.8"
version = "1.6.5"
[deps]
Base64 = "2a0f44e3-6c83-55bd-87e4-b1978d98bd5f"
+1 -1
View File
@@ -1,4 +1,4 @@
using CompileBot
using SnoopCompileBot
snoop_bench(
BotConfig(
+1 -1
View File
@@ -1,4 +1,4 @@
using CompileBot
using SnoopCompileBot
snoop_bot(
BotConfig(
+3 -3
View File
@@ -367,10 +367,10 @@ is_marker_supported(::GRBackend, shape::Shape) = true
function _initialize_backend(pkg::PlotlyBackend)
try
@eval Main begin
import PlotlyBase
import ORCA
end
catch
@info "For saving to png with the Plotly backend PlotlyBase has to be installed."
@info "For saving to png with the Plotly backend ORCA has to be installed."
end
end
@@ -488,7 +488,7 @@ const _pgfplots_scale = [:identity, :ln, :log2, :log10]
function _initialize_backend(pkg::PlotlyJSBackend)
@eval Main begin
import PlotlyJS
import PlotlyJS, ORCA
export PlotlyJS
end
end
-2
View File
@@ -1332,8 +1332,6 @@ function gr_label_ticks(sp, letter, ticks)
end
end
function gr_label_ticks(sp, letter, ticks::Nothing) end
function gr_label_ticks_3d(sp, letter, ticks)
near_letter = letter in (:x, :z) ? :y : :x
far_letter = letter in (:x, :y) ? :z : :x
@@ -1,14 +1,14 @@
function plotlybase_syncplot(plt::Plot)
plt.o = PlotlyBase.Plot()
traces = PlotlyBase.GenericTrace[]
plt.o = ORCA.PlotlyBase.Plot()
traces = ORCA.PlotlyBase.GenericTrace[]
for series_dict in plotly_series(plt)
plotly_type = pop!(series_dict, :type)
push!(traces, PlotlyBase.GenericTrace(plotly_type; series_dict...))
push!(traces, ORCA.PlotlyBase.GenericTrace(plotly_type; series_dict...))
end
PlotlyBase.addtraces!(plt.o, traces...)
ORCA.PlotlyBase.addtraces!(plt.o, traces...)
layout = plotly_layout(plt)
w, h = plt[:size]
PlotlyBase.relayout!(plt.o, layout, width = w, height = h)
ORCA.PlotlyBase.relayout!(plt.o, layout, width = w, height = h)
return plt.o
end
@@ -19,5 +19,5 @@ for (mime, fmt) in (
"image/eps" => "eps",
)
@eval _show(io::IO, ::MIME{Symbol($mime)}, plt::Plot{PlotlyBackend}) =
PlotlyBase.savefig(io, plotlybase_syncplot(plt), format = $fmt)
ORCA.PlotlyBase.savefig(io, plotlybase_syncplot(plt), format = $fmt)
end
+7 -6
View File
@@ -584,9 +584,9 @@ function plotly_series(plt::Plot, series::Series)
elseif st == :mesh3d
plotattributes_out[:type] = "mesh3d"
plotattributes_out[:x], plotattributes_out[:y], plotattributes_out[:z] = x, y, z
if series[:connections] != nothing
if typeof(series[:connections]) <: Tuple{Array,Array,Array}
if typeof(series[:connections]) <: Tuple{Array,Array,Array}
i,j,k = series[:connections]
if !(length(i) == length(j) == length(k))
throw(ArgumentError("Argument connections must consist of equally sized arrays."))
@@ -604,7 +604,7 @@ function plotly_series(plt::Plot, series::Series)
if series[:fill_z] !== nothing
plotattributes_out[:surfacecolor] = plotly_surface_data(series, series[:fill_z])
end
plotattributes_out[:showscale] = hascolorbar(sp)
plotattributes_out[:showscale] = hascolorbar(sp)
else
@warn("Plotly: seriestype $st isn't supported.")
return KW()
@@ -788,7 +788,8 @@ function plotly_series_segments(series::Series, plotattributes_base::KW, x, y, z
else
# if fillrange is a tuple with upper and lower limit, plotattributes_out_fillrange
# is the series that will do the filling
plotattributes_out_fillrange[:x], plotattributes_out_fillrange[:y] = concatenate_fillrange(x[rng], series[:fillrange])
fillrng = Tuple(series[:fillrange][i][rng] for i in 1:2)
plotattributes_out_fillrange[:x], plotattributes_out_fillrange[:y] = concatenate_fillrange(x[rng], fillrng)
plotattributes_out_fillrange[:line][:width] = 0
delete!(plotattributes_out, :fill)
delete!(plotattributes_out, :fillcolor)
@@ -824,8 +825,8 @@ function plotly_colorbar_hack(series::Series, plotattributes_base::KW, sym::Symb
end
# zrange = zmax == zmin ? 1 : zmax - zmin # if all marker_z values are the same, plot all markers same color (avoids division by zero in next line)
plotattributes_out[:marker] = KW(
:size => 1e-10,
:opacity => 1e-10,
:size => 0,
:opacity => 0,
:color => [0.5],
:cmin => cmin,
:cmax => cmax,
+5 -22
View File
@@ -727,15 +727,7 @@ function py_set_lims(ax, sp::Subplot, axis::Axis)
getproperty(ax, Symbol("set_", letter, "lim"))(lfrom, lto)
end
function py_surround_latextext(latexstring, env)
if latexstring[1] == '$' && latexstring[end] == '$'
unenclosed = latexstring[2:end-1]
else
unenclosed = latexstring
end
PyPlot.LaTeXStrings.latexstring(env, "{", unenclosed, "}")
end
py_surround_latextext(latexstring, env) = PyPlot.LaTeXStrings.latexstring(env, "{",latexstring[2:end-1],"}")
function py_set_ticks(ax, ticks, letter, env)
ticks == :auto && return
@@ -754,13 +746,7 @@ function py_set_ticks(ax, ticks, letter, env)
axis."set_ticks"(ticks)
elseif ttype == :ticks_and_labels
axis."set_ticks"(ticks[1])
if pyrcparams["text.usetex"]
tick_labels = ticks[2]
else
tick_labels = [py_surround_latextext(ticklabel, env) for ticklabel in ticks[2]]
end
tick_labels = [py_surround_latextext(ticklabel, env) for ticklabel in ticks[2]]
axis."set_ticklabels"(tick_labels)
else
error("Invalid input for $(letter)ticks: $ticks")
@@ -1023,7 +1009,7 @@ function _before_layout_calcs(plt::Plot{PyPlotBackend})
# Set ticks
fontProperties = PyPlot.PyCall.PyDict(Dict("family" => axis[:tickfontfamily],
"size" => py_thickness_scale(plt, axis[:tickfontsize]),
# "useTex" => false,
"useTex" => false,
"rotation" => axis[:tickfontrotation]))
getproperty(ax, Symbol("set_",letter,"ticklabels"))(getproperty(ax, Symbol("get_",letter,"ticks"))(), fontProperties)
@@ -1033,11 +1019,8 @@ function _before_layout_calcs(plt::Plot{PyPlotBackend})
# Tick marks
intensity = 0.5 # This value corresponds to scaling of other grid elements
pyaxis."set_tick_params"(
direction = axis[:tick_direction] == :out ? "out" : "in",
width=py_thickness_scale(plt, intensity),
length= 5 * py_thickness_scale(plt, intensity)
)
pyaxis."set_tick_params"(direction = axis[:tick_direction] == :out ? "out" : "in", width=py_thickness_scale(plt, intensity),
length= 5 * py_thickness_scale(plt, intensity))
getproperty(ax, Symbol("set_", letter, "label"))(axis[:guide])
if get(axis.plotattributes, :flip, false)
+2 -2
View File
@@ -41,8 +41,8 @@ function __init__()
include(fn)
end
@require PlotlyBase = "a03496cd-edff-5a9b-9e67-9cda94a718b5" begin
fn = joinpath(@__DIR__, "backends", "plotlybase.jl")
@require ORCA = "47be7bcc-f1a6-5447-8b36-7eeeff7534fd" begin
fn = joinpath(@__DIR__, "backends", "orca.jl")
include(fn)
end
+5 -35
View File
@@ -133,7 +133,7 @@ end
@recipe function f(::Type{Val{:hspan}}, x, y, z)
n = div(length(y), 2)
newx = repeat([-Inf, Inf, Inf, -Inf, NaN], outer = n)
newx = repeat([1, 2, 2, 1, NaN], outer = n)
newy = vcat([[y[2i - 1], y[2i - 1], y[2i], y[2i], NaN] for i = 1:n]...)
linewidth --> 0
x := newx
@@ -262,39 +262,24 @@ end
end
end
newx, newy = zeros(3n), zeros(3n)
newz = z!== nothing ? zeros(3n) : nothing
for i = 1:n
rng = (3i - 2):(3i)
newx[rng] = [x[i], x[i], NaN]
if z !== nothing
newy[rng] = [y[i], y[i], NaN]
newz[rng] = [_cycle(fr, i), z[i], NaN]
else
newy[rng] = [_cycle(fr, i), y[i], NaN]
end
newy[rng] = [_cycle(fr, i), y[i], NaN]
end
x := newx
y := newy
if z !== nothing
z := newz
end
fillrange := nothing
seriestype := :path
if plotattributes[:linecolor] == :auto && plotattributes[:marker_z] !== nothing && plotattributes[:line_z] == nothing
line_z := plotattributes[:marker_z]
end
# create a primary series for the markers
# create a secondary series for the markers
if plotattributes[:markershape] != :none
primary := false
@series begin
seriestype := :scatter
x := x
y := y
if z !== nothing
z := z
end
primary := true
label := ""
primary := false
()
end
markershape := :none
@@ -1104,12 +1089,6 @@ function error_coords(errorbar, errordata, otherdata...)
return (ed, od...)
end
# clamp non-NaN values in an array to Base.eps(Float64) for log-scale plots
function clamp_to_eps!(ary)
replace!(x -> x <= 0.0 ? Base.eps(Float64) : x, ary)
nothing
end
# we will create a series of path segments, where each point represents one
# side of an errorbar
@@ -1123,9 +1102,6 @@ end
plotattributes[:x], plotattributes[:y], plotattributes[:z] =
error_coords(xerr, x, y, z)
end
if :xscale keys(plotattributes) && plotattributes[:xscale] == :log10
clamp_to_eps!(plotattributes[:x])
end
()
end
@deps xerror path
@@ -1140,9 +1116,6 @@ end
plotattributes[:y], plotattributes[:x], plotattributes[:z] =
error_coords(yerr, y, x, z)
end
if :yscale keys(plotattributes) && plotattributes[:yscale] == :log10
clamp_to_eps!(plotattributes[:y])
end
()
end
@deps yerror path
@@ -1155,9 +1128,6 @@ end
plotattributes[:z], plotattributes[:x], plotattributes[:y] =
error_coords(zerr, z, x, y)
end
if :zscale keys(plotattributes) && plotattributes[:zscale] == :log10
clamp_to_eps!(plotattributes[:z])
end
()
end
@deps zerror path