working on pgfplots

This commit is contained in:
Thomas Breloff 2016-05-26 14:18:57 -04:00
parent bde3c2e19d
commit a388ec71e3

View File

@ -148,7 +148,7 @@ const _pgf_series_extrastyle = KW(
function pgf_color(c, a = nothing)
c = getColor(c)
cstr = @sprintf("{rgb,1:red,%.8f;green,%.8f;blue,%.8f}", red(c), green(c), blue(c))
a = (a == nothing ? alpha(c) : a)
a = float(a == nothing ? alpha(c) : a)
cstr, a
end
@ -263,10 +263,12 @@ function pgf_series(sp::Subplot, series::Series)
push!(style, pgf_linestyle(d))
push!(style, pgf_marker(d))
push!(style, pgf_fillstyle(d))
if d[:fillrange] != nothing
push!(style, pgf_fillstyle(d))
end
# add to legend?
if should_add_to_legend(series)
if sp.attr[:legend] != :none && should_add_to_legend(series)
kw[:legendentry] = d[:label]
end
@ -486,7 +488,7 @@ end
# end
function _make_pgf_plot!(plt::Plot)
plt.o = []
plt.o = PGFPlots.Axis[]
for sp in plt.subplots
# first build the PGFPlots.Axis object
style = []
@ -501,16 +503,24 @@ function _make_pgf_plot!(plt::Plot)
end
# bounding box values are in mm
# note: bb origin is top-left, pgf is bottom-left
bb = bbox(sp)
push!(style, "xshift = $(left(bb).value)mm")
push!(style, "yshift = $((height(bb) - (bottom(bb))).value)mm") # bb origin is top-left, pgf is bottom-left
push!(style, "width = $(width(bb).value)mm")
push!(style, "height = $(height(bb).value)mm")
push!(style, "title = \"$(sp.attr[:title])\"")
push!(style, "axis background/.style={fill=$(pgf_color(sp.attr[:background_color_inside])[1])}")
push!(style, """
xshift = $(left(bb).value)mm,
yshift = $((height(bb) - (bottom(bb))).value)mm,
width = $(width(bb).value)mm,
height = $(height(bb).value)mm,
axis background/.style={fill=$(pgf_color(sp.attr[:background_color_inside])[1])}
""")
if sp.attr[:title] != ""
push!(style, "title = $(sp.attr[:title])")
end
sp.attr[:grid] && push!(style, "grid = major")
sp.attr[:aspect_ratio] in (1, :equal) && (kw[:axisEqual] = "true")
if sp.attr[:aspect_ratio] in (1, :equal)
kw[:axisEqual] = "true"
end
legpos = sp.attr[:legend]
if haskey(_pgfplots_legend_pos, legpos)
@ -535,6 +545,11 @@ function _writemime(io::IO, mime::MIME"image/svg+xml", plt::Plot{PGFPlotsBackend
writemime(io, mime, plt.o)
end
function _writemime(io::IO, mime::MIME"image/png", plt::Plot{PGFPlotsBackend})
_make_pgf_plot!(plt)
writemime(io, mime, plt.o)
end
function _display(plt::Plot{PGFPlotsBackend})
_make_pgf_plot!(plt)
display(plt.o)