Merge remote-tracking branch 'upstream/master'
This commit is contained in:
commit
b6dddcb15b
@ -59,6 +59,7 @@ LaTeXStrings = "b964fa9f-0449-5b57-a5c2-d3ea65f4040f"
|
|||||||
LibGit2 = "76f85450-5226-5b5a-8eaa-529ad045b433"
|
LibGit2 = "76f85450-5226-5b5a-8eaa-529ad045b433"
|
||||||
OffsetArrays = "6fe1bfb0-de20-5000-8ca7-80f57d26f881"
|
OffsetArrays = "6fe1bfb0-de20-5000-8ca7-80f57d26f881"
|
||||||
PGFPlotsX = "8314cec4-20b6-5062-9cdb-752b83310925"
|
PGFPlotsX = "8314cec4-20b6-5062-9cdb-752b83310925"
|
||||||
|
HDF5 = "f67ccb44-e63f-5c2f-98bd-6dc0ccc4ba2f"
|
||||||
RDatasets = "ce6b1742-4840-55fa-b093-852dadbb1d8b"
|
RDatasets = "ce6b1742-4840-55fa-b093-852dadbb1d8b"
|
||||||
Random = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c"
|
Random = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c"
|
||||||
StaticArrays = "90137ffa-7385-5640-81b9-e52037218182"
|
StaticArrays = "90137ffa-7385-5640-81b9-e52037218182"
|
||||||
@ -68,4 +69,4 @@ UnicodePlots = "b8865327-cd53-5732-bb35-84acbb429228"
|
|||||||
VisualRegressionTests = "34922c18-7c2a-561c-bac1-01e79b2c4c92"
|
VisualRegressionTests = "34922c18-7c2a-561c-bac1-01e79b2c4c92"
|
||||||
|
|
||||||
[targets]
|
[targets]
|
||||||
test = ["FileIO", "GeometryTypes", "Gtk", "ImageMagick", "Images", "LaTeXStrings", "LibGit2", "OffsetArrays", "PGFPlotsX", "Random", "RDatasets", "StaticArrays", "StatsPlots", "Test", "UnicodePlots", "VisualRegressionTests"]
|
test = ["FileIO", "GeometryTypes", "Gtk", "ImageMagick", "Images", "LaTeXStrings", "LibGit2", "OffsetArrays", "PGFPlotsX", "HDF5", "Random", "RDatasets", "StaticArrays", "StatsPlots", "Test", "UnicodePlots", "VisualRegressionTests"]
|
||||||
|
|||||||
@ -83,6 +83,7 @@ if length(HDF5PLOT_MAP_TELEM2STR) < 1
|
|||||||
"ARRAY" => Array, #Dict won't allow Array to be key in HDF5PLOT_MAP_TELEM2STR
|
"ARRAY" => Array, #Dict won't allow Array to be key in HDF5PLOT_MAP_TELEM2STR
|
||||||
|
|
||||||
#Sub-structure types:
|
#Sub-structure types:
|
||||||
|
"ATTR" => Attr,
|
||||||
"FONT" => Font,
|
"FONT" => Font,
|
||||||
"BOUNDINGBOX" => BoundingBox,
|
"BOUNDINGBOX" => BoundingBox,
|
||||||
"GRIDLAYOUT" => GridLayout,
|
"GRIDLAYOUT" => GridLayout,
|
||||||
@ -109,7 +110,7 @@ _hdf5_datapath(subpath::String) = "$_hdf5_dataroot/$subpath"
|
|||||||
_hdf5_map_str2telem(k::String) = HDF5PLOT_MAP_STR2TELEM[k]
|
_hdf5_map_str2telem(k::String) = HDF5PLOT_MAP_STR2TELEM[k]
|
||||||
_hdf5_map_str2telem(v::Vector) = HDF5PLOT_MAP_STR2TELEM[v[1]]
|
_hdf5_map_str2telem(v::Vector) = HDF5PLOT_MAP_STR2TELEM[v[1]]
|
||||||
|
|
||||||
function _hdf5_merge!(dest, src)
|
function _hdf5_merge!(dest::AKW, src::AKW)
|
||||||
for (k, v) in src
|
for (k, v) in src
|
||||||
if isa(v, Axis)
|
if isa(v, Axis)
|
||||||
_hdf5_merge!(dest[k].plotattributes, v.plotattributes)
|
_hdf5_merge!(dest[k].plotattributes, v.plotattributes)
|
||||||
@ -263,6 +264,15 @@ function _hdf5plot_gwrite(grp, k::String, v::Array{T}) where T<:Number #Default
|
|||||||
grp[k] = v
|
grp[k] = v
|
||||||
_hdf5plot_writetype(grp, k, HDF5PlotNative)
|
_hdf5plot_writetype(grp, k, HDF5PlotNative)
|
||||||
end
|
end
|
||||||
|
function _hdf5plot_gwrite(grp, k::String, v::Dict)
|
||||||
|
#=
|
||||||
|
tstr = string(Dict)
|
||||||
|
path = HDF5.name(grp) * "/" * k
|
||||||
|
@info("Type not supported: $tstr\npath: $path")
|
||||||
|
=#
|
||||||
|
#No support for structures with Dicts different than KW (plotattributes)
|
||||||
|
end
|
||||||
|
|
||||||
#=
|
#=
|
||||||
function _hdf5plot_gwrite(grp, k::String, v::Array{Any})
|
function _hdf5plot_gwrite(grp, k::String, v::Array{Any})
|
||||||
# @show grp, k
|
# @show grp, k
|
||||||
@ -295,7 +305,8 @@ function _hdf5plot_gwrite(grp, k::String, v::Tuple)
|
|||||||
end
|
end
|
||||||
#NOTE: _hdf5plot_overwritetype overwrites "Array" type with "Tuple".
|
#NOTE: _hdf5plot_overwritetype overwrites "Array" type with "Tuple".
|
||||||
end
|
end
|
||||||
function _hdf5plot_gwrite(grp, k::String, plotattributes::AKW)
|
function _hdf5plot_gwrite(grp, k::String, plotattributes::KW)
|
||||||
|
#NOTE: Can only write directly to group, not a subi-item
|
||||||
# @warn("Cannot write dict: $k=$plotattributes")
|
# @warn("Cannot write dict: $k=$plotattributes")
|
||||||
end
|
end
|
||||||
function _hdf5plot_gwrite(grp, k::String, v::AbstractRange)
|
function _hdf5plot_gwrite(grp, k::String, v::AbstractRange)
|
||||||
@ -376,13 +387,22 @@ function _hdf5plot_gwrite(grp, k::String, v::Subplot)
|
|||||||
_hdf5plot_writetype(grp, Subplot)
|
_hdf5plot_writetype(grp, Subplot)
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
function _hdf5plot_write(grp, plotattributes::AKW)
|
|
||||||
|
function _hdf5plot_write(grp, plotattributes::KW)
|
||||||
for (k, v) in plotattributes
|
for (k, v) in plotattributes
|
||||||
kstr = string(k)
|
kstr = string(k)
|
||||||
_hdf5plot_gwrite(grp, kstr, v)
|
_hdf5plot_gwrite(grp, kstr, v)
|
||||||
end
|
end
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
function _hdf5plot_write(grp, plotattributes::Attr)
|
||||||
|
for (k, v) in plotattributes
|
||||||
|
kstr = string(k)
|
||||||
|
_hdf5plot_gwrite(grp, kstr, v)
|
||||||
|
end
|
||||||
|
_hdf5plot_writetype(grp, Attr)
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
# Write main plot structures:
|
# Write main plot structures:
|
||||||
# ----------------------------------------------------------------
|
# ----------------------------------------------------------------
|
||||||
@ -445,20 +465,14 @@ _hdf5plot_convert(T::Type{Extrema}, v) = Extrema(v[1], v[2])
|
|||||||
# Read data structures:
|
# Read data structures:
|
||||||
# ----------------------------------------------------------------
|
# ----------------------------------------------------------------
|
||||||
|
|
||||||
function _hdf5plot_read(grp, k::String, T::Type, dtid)
|
function _hdf5plot_read(grp, k::String, T::Type)
|
||||||
v = HDF5.d_read(grp, k)
|
v = HDF5.d_read(grp, k)
|
||||||
return _hdf5plot_convert(T, v)
|
return _hdf5plot_convert(T, v)
|
||||||
end
|
end
|
||||||
function _hdf5plot_read(grp, k::String, T::Type{Length}, dtid::Vector)
|
|
||||||
v = HDF5.d_read(grp, k)
|
|
||||||
TU = Symbol(dtid[2])
|
|
||||||
T = typeof(v)
|
|
||||||
return Length{TU,T}(v)
|
|
||||||
end
|
|
||||||
|
|
||||||
# Read more complex data structures:
|
# Read more complex data structures:
|
||||||
# ----------------------------------------------------------------
|
# ----------------------------------------------------------------
|
||||||
function _hdf5plot_read(grp, k::String, T::Type{Font}, dtid)
|
function _hdf5plot_read(grp, k::String, T::Type{Font})
|
||||||
grp = HDF5.g_open(grp, k)
|
grp = HDF5.g_open(grp, k)
|
||||||
|
|
||||||
family = _hdf5plot_read(grp, "family")
|
family = _hdf5plot_read(grp, "family")
|
||||||
@ -469,7 +483,7 @@ function _hdf5plot_read(grp, k::String, T::Type{Font}, dtid)
|
|||||||
color = _hdf5plot_read(grp, "color")
|
color = _hdf5plot_read(grp, "color")
|
||||||
return Font(family, pointsize, halign, valign, rotation, color)
|
return Font(family, pointsize, halign, valign, rotation, color)
|
||||||
end
|
end
|
||||||
function _hdf5plot_read(grp, k::String, T::Type{Array}, dtid) #ANY
|
function _hdf5plot_read(grp, k::String, T::Type{Array}) #ANY
|
||||||
grp = HDF5.g_open(grp, k)
|
grp = HDF5.g_open(grp, k)
|
||||||
sz = _hdf5plot_read(grp, "dim")
|
sz = _hdf5plot_read(grp, "dim")
|
||||||
if [0] == sz; return []; end
|
if [0] == sz; return []; end
|
||||||
@ -488,18 +502,18 @@ function _hdf5plot_read(grp, k::String, T::Type{Array}, dtid) #ANY
|
|||||||
result = [result[iter] for iter in eachindex(result)] #Potentially make more specific
|
result = [result[iter] for iter in eachindex(result)] #Potentially make more specific
|
||||||
return reshape(result, sz)
|
return reshape(result, sz)
|
||||||
end
|
end
|
||||||
function _hdf5plot_read(grp, k::String, T::Type{HDF5CTuple}, dtid)
|
function _hdf5plot_read(grp, k::String, T::Type{HDF5CTuple})
|
||||||
v = _hdf5plot_read(grp, k, Array, dtid)
|
v = _hdf5plot_read(grp, k, Array)
|
||||||
return tuple(v...)
|
return tuple(v...)
|
||||||
end
|
end
|
||||||
function _hdf5plot_read(grp, k::String, T::Type{PlotText}, dtid)
|
function _hdf5plot_read(grp, k::String, T::Type{PlotText})
|
||||||
grp = HDF5.g_open(grp, k)
|
grp = HDF5.g_open(grp, k)
|
||||||
|
|
||||||
str = _hdf5plot_read(grp, "str")
|
str = _hdf5plot_read(grp, "str")
|
||||||
font = _hdf5plot_read(grp, "font")
|
font = _hdf5plot_read(grp, "font")
|
||||||
return PlotText(str, font)
|
return PlotText(str, font)
|
||||||
end
|
end
|
||||||
function _hdf5plot_read(grp, k::String, T::Type{SeriesAnnotations}, dtid)
|
function _hdf5plot_read(grp, k::String, T::Type{SeriesAnnotations})
|
||||||
grp = HDF5.g_open(grp, k)
|
grp = HDF5.g_open(grp, k)
|
||||||
|
|
||||||
strs = _hdf5plot_read(grp, "strs")
|
strs = _hdf5plot_read(grp, "strs")
|
||||||
@ -508,29 +522,29 @@ function _hdf5plot_read(grp, k::String, T::Type{SeriesAnnotations}, dtid)
|
|||||||
scalefactor = _hdf5plot_read(grp, "scalefactor")
|
scalefactor = _hdf5plot_read(grp, "scalefactor")
|
||||||
return SeriesAnnotations(strs, font, baseshape, scalefactor)
|
return SeriesAnnotations(strs, font, baseshape, scalefactor)
|
||||||
end
|
end
|
||||||
function _hdf5plot_read(grp, k::String, T::Type{Shape}, dtid)
|
function _hdf5plot_read(grp, k::String, T::Type{Shape})
|
||||||
grp = HDF5.g_open(grp, k)
|
grp = HDF5.g_open(grp, k)
|
||||||
|
|
||||||
x = _hdf5plot_read(grp, "x")
|
x = _hdf5plot_read(grp, "x")
|
||||||
y = _hdf5plot_read(grp, "y")
|
y = _hdf5plot_read(grp, "y")
|
||||||
return Shape(x, y)
|
return Shape(x, y)
|
||||||
end
|
end
|
||||||
function _hdf5plot_read(grp, k::String, T::Type{ColorGradient}, dtid)
|
function _hdf5plot_read(grp, k::String, T::Type{ColorGradient})
|
||||||
grp = HDF5.g_open(grp, k)
|
grp = HDF5.g_open(grp, k)
|
||||||
|
|
||||||
colors = _hdf5plot_read(grp, "colors")
|
colors = _hdf5plot_read(grp, "colors")
|
||||||
values = _hdf5plot_read(grp, "values")
|
values = _hdf5plot_read(grp, "values")
|
||||||
return ColorGradient(colors, values)
|
return ColorGradient(colors, values)
|
||||||
end
|
end
|
||||||
function _hdf5plot_read(grp, k::String, T::Type{BoundingBox}, dtid)
|
function _hdf5plot_read(grp, k::String, T::Type{BoundingBox})
|
||||||
grp = HDF5.g_open(grp, k)
|
grp = HDF5.g_open(grp, k)
|
||||||
|
|
||||||
x0 = _hdf5plot_read(grp, "x0")
|
x0 = _hdf5plot_read(grp, "x0")
|
||||||
a = _hdf5plot_read(grp, "a")
|
a = _hdf5plot_read(grp, "a")
|
||||||
return BoundingBox(x0, a)
|
return BoundingBox(x0, a)
|
||||||
end
|
end
|
||||||
_hdf5plot_read(grp, k::String, T::Type{RootLayout}, dtid) = RootLayout()
|
_hdf5plot_read(grp, k::String, T::Type{RootLayout}) = RootLayout()
|
||||||
function _hdf5plot_read(grp, k::String, T::Type{GridLayout}, dtid)
|
function _hdf5plot_read(grp, k::String, T::Type{GridLayout})
|
||||||
grp = HDF5.g_open(grp, k)
|
grp = HDF5.g_open(grp, k)
|
||||||
|
|
||||||
# parent = _hdf5plot_read(grp, "parent")
|
# parent = _hdf5plot_read(grp, "parent")
|
||||||
@ -544,22 +558,36 @@ parent = RootLayout()
|
|||||||
|
|
||||||
return GridLayout(parent, minpad, bbox, grid, widths, heights, attr)
|
return GridLayout(parent, minpad, bbox, grid, widths, heights, attr)
|
||||||
end
|
end
|
||||||
function _hdf5plot_read(grp, k::String, T::Type{Axis}, dtid)
|
function _hdf5plot_read(grp, T::Type{Attr})
|
||||||
grp = HDF5.g_open(grp, k)
|
attr = Attr(KW(), _plot_defaults)
|
||||||
kwlist = KW()
|
v = _hdf5plot_read(grp, attr)
|
||||||
_hdf5plot_read(grp, kwlist)
|
return attr
|
||||||
return Axis([], kwlist)
|
|
||||||
end
|
end
|
||||||
function _hdf5plot_read(grp, k::String, T::Type{Surface}, dtid)
|
function _hdf5plot_read(grp, k::String, T::Type{Axis})
|
||||||
|
grp = HDF5.g_open(grp, k)
|
||||||
|
plotattributes = Attr(KW(), _plot_defaults)
|
||||||
|
_hdf5plot_read(grp, plotattributes)
|
||||||
|
return Axis([], plotattributes)
|
||||||
|
end
|
||||||
|
function _hdf5plot_read(grp, k::String, T::Type{Surface})
|
||||||
grp = HDF5.g_open(grp, k)
|
grp = HDF5.g_open(grp, k)
|
||||||
data2d = _hdf5plot_read(grp, "data2d")
|
data2d = _hdf5plot_read(grp, "data2d")
|
||||||
return Surface(data2d)
|
return Surface(data2d)
|
||||||
end
|
end
|
||||||
function _hdf5plot_read(grp, k::String, T::Type{Subplot}, dtid)
|
function _hdf5plot_read(grp, k::String, T::Type{Subplot})
|
||||||
grp = HDF5.g_open(grp, k)
|
grp = HDF5.g_open(grp, k)
|
||||||
idx = _hdf5plot_read(grp, "index")
|
idx = _hdf5plot_read(grp, "index")
|
||||||
return HDF5PLOT_PLOTREF.ref.subplots[idx]
|
return HDF5PLOT_PLOTREF.ref.subplots[idx]
|
||||||
end
|
end
|
||||||
|
|
||||||
|
#Most types don't need dtid for read!!:
|
||||||
|
_hdf5plot_read(grp, k::String, T::Type, dtid) = _hdf5plot_read(grp, k, T)
|
||||||
|
function _hdf5plot_read(grp, k::String, T::Type{Length}, dtid::Vector)
|
||||||
|
v = HDF5.d_read(grp, k)
|
||||||
|
TU = Symbol(dtid[2])
|
||||||
|
T = typeof(v)
|
||||||
|
return Length{TU,T}(v)
|
||||||
|
end
|
||||||
function _hdf5plot_read(grp, k::String)
|
function _hdf5plot_read(grp, k::String)
|
||||||
dtid = HDF5.a_read(grp[k], _hdf5plot_datatypeid)
|
dtid = HDF5.a_read(grp[k], _hdf5plot_datatypeid)
|
||||||
T = _hdf5_map_str2telem(dtid) #expect exception
|
T = _hdf5_map_str2telem(dtid) #expect exception
|
||||||
@ -567,7 +595,7 @@ function _hdf5plot_read(grp, k::String)
|
|||||||
end
|
end
|
||||||
|
|
||||||
#Read in values in group to populate plotattributes:
|
#Read in values in group to populate plotattributes:
|
||||||
function _hdf5plot_read(grp, plotattributes::AKW)
|
function _hdf5plot_readattr(grp, plotattributes::AbstractDict)
|
||||||
gnames = names(grp)
|
gnames = names(grp)
|
||||||
for k in gnames
|
for k in gnames
|
||||||
try
|
try
|
||||||
@ -581,6 +609,8 @@ function _hdf5plot_read(grp, plotattributes::AKW)
|
|||||||
end
|
end
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
_hdf5plot_read(grp, plotattributes::KW) = _hdf5plot_readattr(grp, plotattributes)
|
||||||
|
_hdf5plot_read(grp, plotattributes::Attr) = _hdf5plot_readattr(grp, plotattributes)
|
||||||
|
|
||||||
# Read main plot structures:
|
# Read main plot structures:
|
||||||
# ----------------------------------------------------------------
|
# ----------------------------------------------------------------
|
||||||
@ -593,17 +623,17 @@ function _hdf5plot_read(sp::Subplot, subpath::String, f)
|
|||||||
|
|
||||||
for i in 1:nseries
|
for i in 1:nseries
|
||||||
grp = HDF5.g_open(f, _hdf5_plotelempath("$subpath/series_list/series$i"))
|
grp = HDF5.g_open(f, _hdf5_plotelempath("$subpath/series_list/series$i"))
|
||||||
kwlist = KW()
|
seriesinfo = Attr(KW(), _plot_defaults)
|
||||||
_hdf5plot_read(grp, kwlist)
|
_hdf5plot_read(grp, seriesinfo)
|
||||||
plot!(sp, kwlist[:x], kwlist[:y]) #Add data & create data structures
|
plot!(sp, seriesinfo[:x], seriesinfo[:y]) #Add data & create data structures
|
||||||
_hdf5_merge!(sp.series_list[end].plotattributes, kwlist)
|
_hdf5_merge!(sp.series_list[end].plotattributes, seriesinfo)
|
||||||
end
|
end
|
||||||
|
|
||||||
#Perform after adding series... otherwise values get overwritten:
|
#Perform after adding series... otherwise values get overwritten:
|
||||||
grp = HDF5.g_open(f, _hdf5_plotelempath("$subpath/attr"))
|
grp = HDF5.g_open(f, _hdf5_plotelempath("$subpath/attr"))
|
||||||
kwlist = KW()
|
attr = Attr(KW(), _plot_defaults)
|
||||||
_hdf5plot_read(grp, kwlist)
|
_hdf5plot_read(grp, attr)
|
||||||
_hdf5_merge!(sp.attr, kwlist)
|
_hdf5_merge!(sp.attr, attr)
|
||||||
|
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
|||||||
@ -117,14 +117,24 @@ function (pgfx_plot::PGFPlotsXPlot)(plt::Plot{PGFPlotsXBackend})
|
|||||||
fg_alpha = alpha(plot_color(sp[:foreground_color_legend]))
|
fg_alpha = alpha(plot_color(sp[:foreground_color_legend]))
|
||||||
title_cstr = plot_color(sp[:titlefontcolor])
|
title_cstr = plot_color(sp[:titlefontcolor])
|
||||||
title_a = alpha(title_cstr)
|
title_a = alpha(title_cstr)
|
||||||
|
title_loc = sp[:title_location]
|
||||||
bgc_inside = plot_color(sp[:background_color_inside])
|
bgc_inside = plot_color(sp[:background_color_inside])
|
||||||
bgc_inside_a = alpha(bgc_inside)
|
bgc_inside_a = alpha(bgc_inside)
|
||||||
axis_opt = PGFPlotsX.Options(
|
axis_opt = PGFPlotsX.Options(
|
||||||
"title" => sp[:title],
|
"title" => sp[:title],
|
||||||
"title style" => PGFPlotsX.Options(
|
"title style" => PGFPlotsX.Options(
|
||||||
"font" => pgfx_font(
|
"at" => if title_loc == :left
|
||||||
sp[:titlefontsize],
|
"{(0,1)}"
|
||||||
pgfx_thickness_scaling(sp),
|
elseif title_loc == :right
|
||||||
|
"{(1,1)}"
|
||||||
|
elseif title_loc isa Tuple
|
||||||
|
"{$(string(title_loc))}"
|
||||||
|
else
|
||||||
|
"{(0.5,1)}"
|
||||||
|
end,
|
||||||
|
"font" => pgfx_font(
|
||||||
|
sp[:titlefontsize],
|
||||||
|
pgfx_thickness_scaling(sp),
|
||||||
),
|
),
|
||||||
"color" => title_cstr,
|
"color" => title_cstr,
|
||||||
"draw opacity" => title_a,
|
"draw opacity" => title_a,
|
||||||
@ -594,11 +604,22 @@ const _pgfplotsx_markers = KW(
|
|||||||
)
|
)
|
||||||
|
|
||||||
const _pgfplotsx_legend_pos = KW(
|
const _pgfplotsx_legend_pos = KW(
|
||||||
|
:top => "north",
|
||||||
|
:bottom => "south",
|
||||||
|
:left => "west",
|
||||||
|
:right => "east",
|
||||||
:bottomleft => "south west",
|
:bottomleft => "south west",
|
||||||
:bottomright => "south east",
|
:bottomright => "south east",
|
||||||
:topright => "north east",
|
:topright => "north east",
|
||||||
:topleft => "north west",
|
:topleft => "north west",
|
||||||
|
:outertop => "north",
|
||||||
|
:outerbottom => "outer south",
|
||||||
|
:outerleft => "outer west",
|
||||||
|
:outerright => "outer east",
|
||||||
|
:outerbottomleft => "outer south west",
|
||||||
|
:outerbottomright => "outer south east",
|
||||||
:outertopright => "outer north east",
|
:outertopright => "outer north east",
|
||||||
|
:outertopleft => "outer north west",
|
||||||
)
|
)
|
||||||
|
|
||||||
const _pgfx_framestyles = [:box, :axes, :origin, :zerolines, :grid, :none]
|
const _pgfx_framestyles = [:box, :axes, :origin, :zerolines, :grid, :none]
|
||||||
@ -929,6 +950,14 @@ function pgfx_axis!(opt::PGFPlotsX.Options, sp::Subplot, letter)
|
|||||||
"opacity" => alpha(tick_color),
|
"opacity" => alpha(tick_color),
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
|
tick_label_color = plot_color(axis[:tickfontcolor])
|
||||||
|
push!(opt,
|
||||||
|
"$(letter) tick label style" => PGFPlotsX.Options(
|
||||||
|
"color" => color(tick_color),
|
||||||
|
"opacity" => alpha(tick_color),
|
||||||
|
"rotate" => axis[:rotation]
|
||||||
|
),
|
||||||
|
)
|
||||||
|
|
||||||
# set to supported framestyle
|
# set to supported framestyle
|
||||||
framestyle = pgfx_framestyle(sp[:framestyle] == false ? :none : sp[:framestyle])
|
framestyle = pgfx_framestyle(sp[:framestyle] == false ? :none : sp[:framestyle])
|
||||||
|
|||||||
@ -9,6 +9,7 @@ using LibGit2
|
|||||||
using GeometryTypes
|
using GeometryTypes
|
||||||
using Dates
|
using Dates
|
||||||
|
|
||||||
|
include("test_hdf5plots.jl")
|
||||||
include("test_pgfplotsx.jl")
|
include("test_pgfplotsx.jl")
|
||||||
|
|
||||||
reference_dir(args...) = joinpath(homedir(), ".julia", "dev", "PlotReferenceImages", args...)
|
reference_dir(args...) = joinpath(homedir(), ".julia", "dev", "PlotReferenceImages", args...)
|
||||||
|
|||||||
21
test/test_hdf5plots.jl
Normal file
21
test/test_hdf5plots.jl
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
using Plots, HDF5
|
||||||
|
|
||||||
|
|
||||||
|
@testset "HDF5_Plots" begin
|
||||||
|
fname = "tmpplotsave.hdf5"
|
||||||
|
hdf5()
|
||||||
|
|
||||||
|
x = 1:10
|
||||||
|
psrc=plot(x, x.*x); #Create some plot
|
||||||
|
Plots.hdf5plot_write(psrc, fname)
|
||||||
|
|
||||||
|
#Read back file:
|
||||||
|
gr() #Choose some fast backend likely to work in test environment.
|
||||||
|
pread = Plots.hdf5plot_read(fname)
|
||||||
|
|
||||||
|
#Make sure data made it through:
|
||||||
|
@test psrc.subplots[1].series_list[1][:x] == pread.subplots[1].series_list[1][:x]
|
||||||
|
@test psrc.subplots[1].series_list[1][:y] == pread.subplots[1].series_list[1][:y]
|
||||||
|
|
||||||
|
#display(pread) #Don't display. Regression env might not support
|
||||||
|
end #testset
|
||||||
Loading…
x
Reference in New Issue
Block a user