Margin keyword now accepts a NamedTuple (such as the one returned by gmargins()
This commit is contained in:
parent
ad624bebf1
commit
52e2227c08
@ -83,7 +83,6 @@ end
|
|||||||
# │ Sessions data structures │
|
# │ Sessions data structures │
|
||||||
# ╰───────────────────────────────────────────────────────────────────╯
|
# ╰───────────────────────────────────────────────────────────────────╯
|
||||||
# ---------------------------------------------------------------------
|
# ---------------------------------------------------------------------
|
||||||
# ---------------------------------------------------------------------
|
|
||||||
mutable struct SinglePlot
|
mutable struct SinglePlot
|
||||||
cmds::Vector{String}
|
cmds::Vector{String}
|
||||||
elems::Vector{String}
|
elems::Vector{String}
|
||||||
@ -172,7 +171,7 @@ function parseKeywords(; kwargs...)
|
|||||||
ylog=Bool,
|
ylog=Bool,
|
||||||
zlog=Bool,
|
zlog=Bool,
|
||||||
cblog=Bool,
|
cblog=Bool,
|
||||||
margins=AbstractString,
|
margins=Union{AbstractString,NamedTuple},
|
||||||
lmargin=Union{AbstractString,Real},
|
lmargin=Union{AbstractString,Real},
|
||||||
rmargin=Union{AbstractString,Real},
|
rmargin=Union{AbstractString,Real},
|
||||||
bmargin=Union{AbstractString,Real},
|
bmargin=Union{AbstractString,Real},
|
||||||
@ -195,7 +194,13 @@ function parseKeywords(; kwargs...)
|
|||||||
ismissing(kw.zlog ) || (push!(out, (kw.zlog ? "" : "un") * "set logscale z"))
|
ismissing(kw.zlog ) || (push!(out, (kw.zlog ? "" : "un") * "set logscale z"))
|
||||||
ismissing(kw.cblog ) || (push!(out, (kw.cblog ? "" : "un") * "set logscale cb"))
|
ismissing(kw.cblog ) || (push!(out, (kw.cblog ? "" : "un") * "set logscale cb"))
|
||||||
|
|
||||||
ismissing(kw.margins) || push!(out, "set margins $(kw.margins)")
|
if !ismissing(kw.margins)
|
||||||
|
if isa(kw.margins, AbstractString)
|
||||||
|
push!(out, "set margins $(kw.margins)")
|
||||||
|
else
|
||||||
|
push!(out, "set margins at screen $(kw.margins.l), at screen $(kw.margins.r), at screen $(kw.margins.b), at screen $(kw.margins.t)")
|
||||||
|
end
|
||||||
|
end
|
||||||
ismissing(kw.lmargin) || push!(out, (kw.lmargin == "" ? "unset lmargin" : "set lmargin at screen $(kw.lmargin)"))
|
ismissing(kw.lmargin) || push!(out, (kw.lmargin == "" ? "unset lmargin" : "set lmargin at screen $(kw.lmargin)"))
|
||||||
ismissing(kw.rmargin) || push!(out, (kw.rmargin == "" ? "unset rmargin" : "set rmargin at screen $(kw.rmargin)"))
|
ismissing(kw.rmargin) || push!(out, (kw.rmargin == "" ? "unset rmargin" : "set rmargin at screen $(kw.rmargin)"))
|
||||||
ismissing(kw.bmargin) || push!(out, (kw.bmargin == "" ? "unset bmargin" : "set bmargin at screen $(kw.bmargin)"))
|
ismissing(kw.bmargin) || push!(out, (kw.bmargin == "" ? "unset bmargin" : "set bmargin at screen $(kw.bmargin)"))
|
||||||
@ -1914,7 +1919,7 @@ end
|
|||||||
gpvars(sid::Symbol)
|
gpvars(sid::Symbol)
|
||||||
gpvars()
|
gpvars()
|
||||||
|
|
||||||
Return a `Dict{Symbol, Union{String, Real}}` with all currently defined gnuplot variables. If the `sid` argument is not provided, the default session is considered.
|
Return a `NamedTuple` with all currently defined gnuplot variables. If the `sid` argument is not provided, the default session is considered.
|
||||||
"""
|
"""
|
||||||
gpvars() = gpvars(options.default)
|
gpvars() = gpvars(options.default)
|
||||||
function gpvars(sid::Symbol)
|
function gpvars(sid::Symbol)
|
||||||
@ -1925,21 +1930,24 @@ function gpvars(sid::Symbol)
|
|||||||
for v in vars
|
for v in vars
|
||||||
if length(v) > 6
|
if length(v) > 6
|
||||||
if v[1:6] == "GPVAL_"
|
if v[1:6] == "GPVAL_"
|
||||||
s = string.(strip.(split(v[7:end], '=')))
|
v = v[7:end]
|
||||||
key = Symbol(s[1])
|
end
|
||||||
if s[2][1] == '"'
|
end
|
||||||
out[key] = s[2][2:end-1]
|
s = string.(strip.(split(v, '=')))
|
||||||
else
|
if length(s) == 2
|
||||||
try
|
key = Symbol(s[1])
|
||||||
out[key] = Meta.parse(s[2])
|
if s[2][1] == '"'
|
||||||
catch
|
out[key] = s[2][2:end-1]
|
||||||
out[key] = s[2]
|
else
|
||||||
end
|
try
|
||||||
|
out[key] = Meta.parse(s[2])
|
||||||
|
catch
|
||||||
|
out[key] = s[2]
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
return out
|
return (; zip(keys(out), values(out))...)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
@ -1953,10 +1961,10 @@ Return a `NamedTuple` with keys `l`, `r`, `b` and `t` containing respectively th
|
|||||||
gpmargins() = gpmargins(options.default)
|
gpmargins() = gpmargins(options.default)
|
||||||
function gpmargins(sid::Symbol)
|
function gpmargins(sid::Symbol)
|
||||||
vars = gpvars()
|
vars = gpvars()
|
||||||
l = vars[:TERM_XMIN] / (vars[:TERM_XSIZE] / vars[:TERM_SCALE])
|
l = vars.TERM_XMIN / (vars.TERM_XSIZE / vars.TERM_SCALE)
|
||||||
r = vars[:TERM_XMAX] / (vars[:TERM_XSIZE] / vars[:TERM_SCALE])
|
r = vars.TERM_XMAX / (vars.TERM_XSIZE / vars.TERM_SCALE)
|
||||||
b = vars[:TERM_YMIN] / (vars[:TERM_YSIZE] / vars[:TERM_SCALE])
|
b = vars.TERM_YMIN / (vars.TERM_YSIZE / vars.TERM_SCALE)
|
||||||
t = vars[:TERM_YMAX] / (vars[:TERM_YSIZE] / vars[:TERM_SCALE])
|
t = vars.TERM_YMAX / (vars.TERM_YSIZE / vars.TERM_SCALE)
|
||||||
return (l=l, r=r, b=b, t=t)
|
return (l=l, r=r, b=b, t=t)
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -1969,10 +1977,10 @@ Return a `NamedTuple` with keys `x`, `y`, `z` and `cb` containing respectively t
|
|||||||
gpranges() = gpranges(options.default)
|
gpranges() = gpranges(options.default)
|
||||||
function gpranges(sid::Symbol)
|
function gpranges(sid::Symbol)
|
||||||
vars = gpvars()
|
vars = gpvars()
|
||||||
x = [vars[:X_MIN], vars[:X_MAX]]
|
x = [vars.X_MIN, vars.X_MAX]
|
||||||
y = [vars[:Y_MIN], vars[:Y_MAX]]
|
y = [vars.Y_MIN, vars.Y_MAX]
|
||||||
z = [vars[:Z_MIN], vars[:Z_MAX]]
|
z = [vars.Z_MIN, vars.Z_MAX]
|
||||||
c = [vars[:CB_MIN], vars[:CB_MAX]]
|
c = [vars.CB_MIN, vars.CB_MAX]
|
||||||
return (x=x, y=y, z=z, cb=c)
|
return (x=x, y=y, z=z, cb=c)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user