working on plotlyjs

This commit is contained in:
Thomas Breloff 2016-03-08 17:52:39 -05:00
parent ed1cce86ef
commit fe2030b7e3
2 changed files with 19 additions and 14 deletions

View File

@ -8,8 +8,7 @@ function _initialize_backend(::PlotlyJSPackage; kw...)
end end
for (mime, fmt) in PlotlyJS._mimeformats for (mime, fmt) in PlotlyJS._mimeformats
@eval Base.writemime(io::IO, m::MIME{symbol($mime)}, p::Plot{PlotlyJSPackage}) = @eval Base.writemime(io::IO, m::MIME{symbol($mime)}, p::Plot{PlotlyJSPackage}) = writemime(io, m, p.o.plot)
writemime(io, m, p.o)
end end
end end
@ -19,8 +18,11 @@ function _create_plot(pkg::PlotlyJSPackage; kw...)
d = Dict(kw) d = Dict(kw)
# TODO: create the window/canvas/context that is the plot within the backend (call it `o`) # TODO: create the window/canvas/context that is the plot within the backend (call it `o`)
# TODO: initialize the plot... title, xlabel, bgcolor, etc # TODO: initialize the plot... title, xlabel, bgcolor, etc
o = PlotlyJS.Plot(PlotlyJS.GenericTrace[], PlotlyJS.Layout(), # o = PlotlyJS.Plot(PlotlyJS.GenericTrace[], PlotlyJS.Layout(),
Base.Random.uuid4(), PlotlyJS.ElectronDisplay()) # Base.Random.uuid4(), PlotlyJS.ElectronDisplay())
# T = isijulia() ? PlotlyJS.JupyterPlot : PlotlyJS.ElectronPlot
# o = T(PlotlyJS.Plot())
o = PlotlyJS.plot()
Plot(o, pkg, 0, d, Dict[]) Plot(o, pkg, 0, d, Dict[])
end end
@ -28,15 +30,15 @@ end
function _add_series(::PlotlyJSPackage, plt::Plot; kw...) function _add_series(::PlotlyJSPackage, plt::Plot; kw...)
d = Dict(kw) d = Dict(kw)
syncplot = plt.o
dumpdict(d, "addseries", true)
# add to the data array # add to the data array
pdict = plotly_series(d) pdict = plotly_series(d)
typ = pop!(pdict, :type) typ = pop!(pdict, :type)
gt = PlotlyJS.GenericTrace(typ; pdict...) gt = PlotlyJS.GenericTrace(typ; pdict...)
push!(plt.o.data, gt) PlotlyJS.addtraces!(syncplot, gt)
if PlotlyJS.isactive(plt.o._display)
PlotlyJS.addtraces!(plt.o, gt)
end
push!(plt.seriesargs, d) push!(plt.seriesargs, d)
plt plt
@ -63,10 +65,10 @@ end
# TODO: override this to update plot items (title, xlabel, etc) after creation # TODO: override this to update plot items (title, xlabel, etc) after creation
function _update_plot(plt::Plot{PlotlyJSPackage}, d::Dict) function _update_plot(plt::Plot{PlotlyJSPackage}, d::Dict)
pdict = plotly_layout(d) pdict = plotly_layout(d)
plt.o.layout = PlotlyJS.Layout(pdict) dumpdict(pdict, "pdict updateplot", true)
if PlotlyJS.isactive(plt.o._display) syncplot = plt.o
PlotlyJS.relayout!(plt.o; pdict...) w,h = d[:size]
end PlotlyJS.relayout!(syncplot, pdict, width = w, height = h)
end end
@ -105,8 +107,11 @@ end
# ---------------------------------------------------------------- # ----------------------------------------------------------------
function Base.writemime(io::IO, m::MIME"text/html", plt::PlottingObject{PlotlyJSPackage})
Base.writemime(io, m, plt.o)
end
function Base.display(::PlotsDisplay, plt::Plot{PlotlyJSPackage}) function Base.display(::PlotsDisplay, plt::Plot{PlotlyJSPackage})
dump(plt.o)
display(plt.o) display(plt.o)
end end

View File

@ -30,7 +30,7 @@ facts("GR") do
@fact gr() --> Plots.GRPackage() @fact gr() --> Plots.GRPackage()
@fact backend() --> Plots.GRPackage() @fact backend() --> Plots.GRPackage()
image_comparison_facts(:gr, only=[1], eps=img_eps) # image_comparison_facts(:gr, only=[1], eps=img_eps)
end end
FactCheck.exitstatus() FactCheck.exitstatus()