Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

No output when using the REPL #18

Closed
schneiderfelipe opened this issue Feb 2, 2021 · 5 comments · Fixed by #23
Closed

No output when using the REPL #18

schneiderfelipe opened this issue Feb 2, 2021 · 5 comments · Fixed by #23

Comments

@schneiderfelipe
Copy link

schneiderfelipe commented Feb 2, 2021

Hi @oxinabox, I'm following an example from the docs, but I'm unable to generate any visual output with visualize_chart:

julia> using ProjectManagement

julia> proj = Project(
           (start=0,
            a=PertBeta(1, 2, 3),
            b=PertBeta(10, 20, 30),
            c=PertBeta(100, 200, 600),
            finish=0,
           ),
           [:start => :a,
            :a => :b,
            :b => :c,
            :c => :finish,
           ]
       )
Project{NamedTuple{(:start, :a, :b, :c, :finish),Tuple{Int64,PertBeta{Int64},PertBeta{Int64},PertBeta{Int64},Int64}}}((start = 0, a = PertBeta{Int64}(a=1, b=2, c=3), b = PertBeta{Int64}(a=10, b=20, c=30), c = PertBeta{Int64}(a=100, b=200, c=600), finish = 0), [:start => :a, :a => :b, :b => :c, :c => :finish])

julia> visualize_chart(proj; fontsize=2.5)
Compose.Context(BBox{l,t,r,b,w,h = 0.0w,0.0h, 1.0w,1.0h, 1.0w,1.0h}, Compose.UnitBox{Float64,Float64,Float64,Float64}(0.0, -6.0, 54.0, 54.0, 0.0mm, 0.0mm, 0.0mm, 0.0mm), nothing, nothing, nothing, List([Compose.Context(BBox{l,t,r,b,w,h = 2.5cx,0cy, 2.5cx + 1.0w,0cy + 1.0h, 1.0w,1.0h}, nothing, nothing, nothing, nothing, List([]), List([Compose.Form{Compose.LinePrimitive}(Compose.LinePrimitive[Compose.LinePrimitive{Tuple{Measures.Measure,Measures.Measure}}(Tuple{Measures.Measure,Measures.Measure}[(9.0cx, 0.0cy), (18.0cx, 0.0cy)]), Compose.LinePrimitive{Tuple{Measures.Measure,Measures.Measure}}(Tuple{Measures.Measure,Measures.Measure}[(18.0cx, 0.0cy), (27.0cx, 0.0cy)]), Compose.LinePrimitive{Tuple{Measures.Measure,Measures.Measure}}(Tuple{Measures.Measure,Measures.Measure}[(27.0cx, 0.0cy), (36.0cx, 0.0cy)]), Compose.LinePrimitive{Tuple{Measures.Measure,Measures.Measure}}(Tuple{Measures.Measure,Measures.Measure}[(36.0cx, 0.0cy), (45.0cx, 0.0cy)])], Symbol(""))]), List([Compose.Property{Compose.StrokePrimitive}(Compose.StrokePrimitive[Compose.StrokePrimitive(RGBA{Float64}(0.0,0.5019607843137255,0.0,1.0))])]), 1, false, false, false, false, nothing, nothing, 0.0, Symbol("")), Compose.Context(BBox{l,t,r,b,w,h = 0.0w,0.0h, 1.0w,1.0h, 1.0w,1.0h}, nothing, nothing, nothing, nothing, List([Compose.Context(BBox{l,t,r,b,w,h = 45.0cx,0.0cy, 45.0cx + 1.0w,0.0cy + 1.0h, 1.0w,1.0h}, nothing, nothing, nothing, nothing, List([Compose.Context(BBox{l,t,r,b,w,h = 0.0w,0.0h, 1.0w,1.0h, 1.0w,1.0h}, nothing, nothing, nothing, nothing, List([Compose.Context(BBox{l,t,r,b,w,h = 1cx,-1cy, 4cx,1cy, 3cx,2cy}, Compose.UnitBox{Int64,Int64,Int64,Int64}(0, 0, 10, 10, 0.0mm, 0.0mm, 0.0mm, 0.0mm), nothing, nothing, nothing, List([]), List([Compose.Form{Compose.TextPrimitive{Tuple{Measures.Length{:cx,Int64},Measures.Length{:cy,Int64}},Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}},Tuple{Measures.Length{:mm,Float64},Measures.Length{:mm,Float64}}}}(Compose.TextPrimitive{Tuple{Measures.Length{:cx,Int64},Measures.Length{:cy,Int64}},Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}},Tuple{Measures.Length{:mm,Float64},Measures.Length{:mm,Float64}}}[Compose.TextPrimitive{Tuple{Measures.Length{:cx,Int64},Measures.Length{:cy,Int64}},Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}},Tuple{Measures.Length{:mm,Float64},Measures.Length{:mm,Float64}}}((5cx, 2cy), "finish\n0", Compose.HCenter(), Compose.VTop(), Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}}(0.0, (0.5w, 0.5h)), (0.0mm, 0.0mm))], Symbol(""))]), List([Compose.Property{Compose.FontSizePrimitive}(Compose.FontSizePrimitive[Compose.FontSizePrimitive(2.5mm)])]), 2, false, false, false, false, nothing, nothing, 0.0, Symbol("")), Compose.Context(BBox{l,t,r,b,w,h = 0.0w,0.0h, 1.0w,1.0h, 1.0w,1.0h}, nothing, nothing, nothing, nothing, List([]), List([Compose.Form{Compose.SimplePolygonPrimitive{Tuple{Measures.Measure,Measures.Measure}}}(Compose.SimplePolygonPrimitive{Tuple{Measures.Measure,Measures.Measure}}[Compose.SimplePolygonPrimitive{Tuple{Measures.Measure,Measures.Measure}}(Tuple{Measures.Measure,Measures.Measure}[(0cx, 0cy), (1cx, 1.5cy), (4cx, 1.5cy), (5cx, 0cy), (4cx, -1.5cy), (1cx, -1.5cy)])], Symbol(""))]), List([Compose.Property{Compose.FillOpacityPrimitive}(Compose.FillOpacityPrimitive[Compose.FillOpacityPrimitive(1.0)]), Compose.Property{Compose.FillPrimitive}(Compose.FillPrimitive[Compose.FillPrimitive(RGBA{Float64}(1.0,1.0,1.0,1.0))]), Compose.Property{Compose.StrokePrimitive}(Compose.StrokePrimitive[Compose.StrokePrimitive(RGBA{Float64}(0.0,0.0,1.0,1.0))])]), 1, false, false, false, false, nothing, nothing, 0.0, Symbol(""))]), List([]), List([]), 0, false, false, false, false, nothing, nothing, 0.0, Symbol(""))]), List([]), List([]), 0, false, false, false, false, nothing, nothing, 0.0, Symbol("")), Compose.Context(BBox{l,t,r,b,w,h = 36.0cx,0.0cy, 36.0cx + 1.0w,0.0cy + 1.0h, 1.0w,1.0h}, nothing, nothing, nothing, nothing, List([Compose.Context(BBox{l,t,r,b,w,h = 0.0w,0.0h, 1.0w,1.0h, 1.0w,1.0h}, nothing, nothing, nothing, nothing, List([Compose.Context(BBox{l,t,r,b,w,h = 1cx,-1cy, 4cx,1cy, 3cx,2cy}, Compose.UnitBox{Int64,Int64,Int64,Int64}(0, 0, 10, 10, 0.0mm, 0.0mm, 0.0mm, 0.0mm), nothing, nothing, nothing, List([]), List([Compose.Form{Compose.TextPrimitive{Tuple{Measures.Length{:cx,Int64},Measures.Length{:cy,Int64}},Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}},Tuple{Measures.Length{:mm,Float64},Measures.Length{:mm,Float64}}}}(Compose.TextPrimitive{Tuple{Measures.Length{:cx,Int64},Measures.Length{:cy,Int64}},Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}},Tuple{Measures.Length{:mm,Float64},Measures.Length{:mm,Float64}}}[Compose.TextPrimitive{Tuple{Measures.Length{:cx,Int64},Measures.Length{:cy,Int64}},Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}},Tuple{Measures.Length{:mm,Float64},Measures.Length{:mm,Float64}}}((5cx, 2cy), "c\n(100|200|600)\n250.0", Compose.HCenter(), Compose.VTop(), Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}}(0.0, (0.5w, 0.5h)), (0.0mm, 0.0mm))], Symbol(""))]), List([Compose.Property{Compose.FontSizePrimitive}(Compose.FontSizePrimitive[Compose.FontSizePrimitive(2.5mm)])]), 2, false, false, false, false, nothing, nothing, 0.0, Symbol("")), Compose.Context(BBox{l,t,r,b,w,h = 0.0w,0.0h, 1.0w,1.0h, 1.0w,1.0h}, nothing, nothing, nothing, nothing, List([]), List([Compose.Form{Compose.SimplePolygonPrimitive{Tuple{Measures.Measure,Measures.Measure}}}(Compose.SimplePolygonPrimitive{Tuple{Measures.Measure,Measures.Measure}}[Compose.SimplePolygonPrimitive{Tuple{Measures.Measure,Measures.Measure}}(Tuple{Measures.Measure,Measures.Measure}[(0cx, 0cy), (1cx, 1.5cy), (4cx, 1.5cy), (5cx, 0cy), (4cx, -1.5cy), (1cx, -1.5cy)])], Symbol(""))]), List([Compose.Property{Compose.FillOpacityPrimitive}(Compose.FillOpacityPrimitive[Compose.FillOpacityPrimitive(1.0)]), Compose.Property{Compose.FillPrimitive}(Compose.FillPrimitive[Compose.FillPrimitive(RGBA{Float64}(1.0,1.0,1.0,1.0))]), Compose.Property{Compose.StrokePrimitive}(Compose.StrokePrimitive[Compose.StrokePrimitive(RGBA{Float64}(0.0,0.0,1.0,1.0))])]), 1, false, false, false, false, nothing, nothing, 0.0, Symbol(""))]), List([]), List([]), 0, false, false, false, false, nothing, nothing, 0.0, Symbol(""))]), List([]), List([]), 0, false, false, false, false, nothing, nothing, 0.0, Symbol("")), Compose.Context(BBox{l,t,r,b,w,h = 27.0cx,0.0cy, 27.0cx + 1.0w,0.0cy + 1.0h, 1.0w,1.0h}, nothing, nothing, nothing, nothing, List([Compose.Context(BBox{l,t,r,b,w,h = 0.0w,0.0h, 1.0w,1.0h, 1.0w,1.0h}, nothing, nothing, nothing, nothing, List([Compose.Context(BBox{l,t,r,b,w,h = 1cx,-1cy, 4cx,1cy, 3cx,2cy}, Compose.UnitBox{Int64,Int64,Int64,Int64}(0, 0, 10, 10, 0.0mm, 0.0mm, 0.0mm, 0.0mm), nothing, nothing, nothing, List([]), List([Compose.Form{Compose.TextPrimitive{Tuple{Measures.Length{:cx,Int64},Measures.Length{:cy,Int64}},Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}},Tuple{Measures.Length{:mm,Float64},Measures.Length{:mm,Float64}}}}(Compose.TextPrimitive{Tuple{Measures.Length{:cx,Int64},Measures.Length{:cy,Int64}},Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}},Tuple{Measures.Length{:mm,Float64},Measures.Length{:mm,Float64}}}[Compose.TextPrimitive{Tuple{Measures.Length{:cx,Int64},Measures.Length{:cy,Int64}},Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}},Tuple{Measures.Length{:mm,Float64},Measures.Length{:mm,Float64}}}((5cx, 2cy), "b\n(10|20|30)\n20.0", Compose.HCenter(), Compose.VTop(), Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}}(0.0, (0.5w, 0.5h)), (0.0mm, 0.0mm))], Symbol(""))]), List([Compose.Property{Compose.FontSizePrimitive}(Compose.FontSizePrimitive[Compose.FontSizePrimitive(2.5mm)])]), 2, false, false, false, false, nothing, nothing, 0.0, Symbol("")), Compose.Context(BBox{l,t,r,b,w,h = 0.0w,0.0h, 1.0w,1.0h, 1.0w,1.0h}, nothing, nothing, nothing, nothing, List([]), List([Compose.Form{Compose.SimplePolygonPrimitive{Tuple{Measures.Measure,Measures.Measure}}}(Compose.SimplePolygonPrimitive{Tuple{Measures.Measure,Measures.Measure}}[Compose.SimplePolygonPrimitive{Tuple{Measures.Measure,Measures.Measure}}(Tuple{Measures.Measure,Measures.Measure}[(0cx, 0cy), (1cx, 1.5cy), (4cx, 1.5cy), (5cx, 0cy), (4cx, -1.5cy), (1cx, -1.5cy)])], Symbol(""))]), List([Compose.Property{Compose.FillOpacityPrimitive}(Compose.FillOpacityPrimitive[Compose.FillOpacityPrimitive(1.0)]), Compose.Property{Compose.FillPrimitive}(Compose.FillPrimitive[Compose.FillPrimitive(RGBA{Float64}(1.0,1.0,1.0,1.0))]), Compose.Property{Compose.StrokePrimitive}(Compose.StrokePrimitive[Compose.StrokePrimitive(RGBA{Float64}(0.0,0.0,1.0,1.0))])]), 1, false, false, false, false, nothing, nothing, 0.0, Symbol(""))]), List([]), List([]), 0, false, false, false, false, nothing, nothing, 0.0, Symbol(""))]), List([]), List([]), 0, false, false, false, false, nothing, nothing, 0.0, Symbol("")), Compose.Context(BBox{l,t,r,b,w,h = 18.0cx,0.0cy, 18.0cx + 1.0w,0.0cy + 1.0h, 1.0w,1.0h}, nothing, nothing, nothing, nothing, List([Compose.Context(BBox{l,t,r,b,w,h = 0.0w,0.0h, 1.0w,1.0h, 1.0w,1.0h}, nothing, nothing, nothing, nothing, List([Compose.Context(BBox{l,t,r,b,w,h = 1cx,-1cy, 4cx,1cy, 3cx,2cy}, Compose.UnitBox{Int64,Int64,Int64,Int64}(0, 0, 10, 10, 0.0mm, 0.0mm, 0.0mm, 0.0mm), nothing, nothing, nothing, List([]), List([Compose.Form{Compose.TextPrimitive{Tuple{Measures.Length{:cx,Int64},Measures.Length{:cy,Int64}},Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}},Tuple{Measures.Length{:mm,Float64},Measures.Length{:mm,Float64}}}}(Compose.TextPrimitive{Tuple{Measures.Length{:cx,Int64},Measures.Length{:cy,Int64}},Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}},Tuple{Measures.Length{:mm,Float64},Measures.Length{:mm,Float64}}}[Compose.TextPrimitive{Tuple{Measures.Length{:cx,Int64},Measures.Length{:cy,Int64}},Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}},Tuple{Measures.Length{:mm,Float64},Measures.Length{:mm,Float64}}}((5cx, 2cy), "a\n(1|2|3)\n2.0", Compose.HCenter(), Compose.VTop(), Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}}(0.0, (0.5w, 0.5h)), (0.0mm, 0.0mm))], Symbol(""))]), List([Compose.Property{Compose.FontSizePrimitive}(Compose.FontSizePrimitive[Compose.FontSizePrimitive(2.5mm)])]), 2, false, false, false, false, nothing, nothing, 0.0, Symbol("")), Compose.Context(BBox{l,t,r,b,w,h = 0.0w,0.0h, 1.0w,1.0h, 1.0w,1.0h}, nothing, nothing, nothing, nothing, List([]), List([Compose.Form{Compose.SimplePolygonPrimitive{Tuple{Measures.Measure,Measures.Measure}}}(Compose.SimplePolygonPrimitive{Tuple{Measures.Measure,Measures.Measure}}[Compose.SimplePolygonPrimitive{Tuple{Measures.Measure,Measures.Measure}}(Tuple{Measures.Measure,Measures.Measure}[(0cx, 0cy), (1cx, 1.5cy), (4cx, 1.5cy), (5cx, 0cy), (4cx, -1.5cy), (1cx, -1.5cy)])], Symbol(""))]), List([Compose.Property{Compose.FillOpacityPrimitive}(Compose.FillOpacityPrimitive[Compose.FillOpacityPrimitive(1.0)]), Compose.Property{Compose.FillPrimitive}(Compose.FillPrimitive[Compose.FillPrimitive(RGBA{Float64}(1.0,1.0,1.0,1.0))]), Compose.Property{Compose.StrokePrimitive}(Compose.StrokePrimitive[Compose.StrokePrimitive(RGBA{Float64}(0.0,0.0,1.0,1.0))])]), 1, false, false, false, false, nothing, nothing, 0.0, Symbol(""))]), List([]), List([]), 0, false, false, false, false, nothing, nothing, 0.0, Symbol(""))]), List([]), List([]), 0, false, false, false, false, nothing, nothing, 0.0, Symbol("")), Compose.Context(BBox{l,t,r,b,w,h = 9.0cx,0.0cy, 9.0cx + 1.0w,0.0cy + 1.0h, 1.0w,1.0h}, nothing, nothing, nothing, nothing, List([Compose.Context(BBox{l,t,r,b,w,h = 0.0w,0.0h, 1.0w,1.0h, 1.0w,1.0h}, nothing, nothing, nothing, nothing, List([Compose.Context(BBox{l,t,r,b,w,h = 1cx,-1cy, 4cx,1cy, 3cx,2cy}, Compose.UnitBox{Int64,Int64,Int64,Int64}(0, 0, 10, 10, 0.0mm, 0.0mm, 0.0mm, 0.0mm), nothing, nothing, nothing, List([]), List([Compose.Form{Compose.TextPrimitive{Tuple{Measures.Length{:cx,Int64},Measures.Length{:cy,Int64}},Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}},Tuple{Measures.Length{:mm,Float64},Measures.Length{:mm,Float64}}}}(Compose.TextPrimitive{Tuple{Measures.Length{:cx,Int64},Measures.Length{:cy,Int64}},Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}},Tuple{Measures.Length{:mm,Float64},Measures.Length{:mm,Float64}}}[Compose.TextPrimitive{Tuple{Measures.Length{:cx,Int64},Measures.Length{:cy,Int64}},Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}},Tuple{Measures.Length{:mm,Float64},Measures.Length{:mm,Float64}}}((5cx, 2cy), "start\n0", Compose.HCenter(), Compose.VTop(), Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}}(0.0, (0.5w, 0.5h)), (0.0mm, 0.0mm))], Symbol(""))]), List([Compose.Property{Compose.FontSizePrimitive}(Compose.FontSizePrimitive[Compose.FontSizePrimitive(2.5mm)])]), 2, false, false, false, false, nothing, nothing, 0.0, Symbol("")), Compose.Context(BBox{l,t,r,b,w,h = 0.0w,0.0h, 1.0w,1.0h, 1.0w,1.0h}, nothing, nothing, nothing, nothing, List([]), List([Compose.Form{Compose.SimplePolygonPrimitive{Tuple{Measures.Measure,Measures.Measure}}}(Compose.SimplePolygonPrimitive{Tuple{Measures.Measure,Measures.Measure}}[Compose.SimplePolygonPrimitive{Tuple{Measures.Measure,Measures.Measure}}(Tuple{Measures.Measure,Measures.Measure}[(0cx, 0cy), (1cx, 1.5cy), (4cx, 1.5cy), (5cx, 0cy), (4cx, -1.5cy), (1cx, -1.5cy)])], Symbol(""))]), List([Compose.Property{Compose.FillOpacityPrimitive}(Compose.FillOpacityPrimitive[Compose.FillOpacityPrimitive(1.0)]), Compose.Property{Compose.FillPrimitive}(Compose.FillPrimitive[Compose.FillPrimitive(RGBA{Float64}(1.0,1.0,1.0,1.0))]), Compose.Property{Compose.StrokePrimitive}(Compose.StrokePrimitive[Compose.StrokePrimitive(RGBA{Float64}(0.0,0.0,1.0,1.0))])]), 1, false, false, false, false, nothing, nothing, 0.0, Symbol(""))]), List([]), List([]), 0, false, false, false, false, nothing, nothing, 0.0, Symbol(""))]), List([]), List([]), 0, false, false, false, false, nothing, nothing, 0.0, Symbol(""))]), List([]), List([]), 2, false, false, false, false, nothing, nothing, 0.0, Symbol(""))]), List([]), List([]), 0, false, false, false, false, nothing, nothing, 0.0, Symbol(""))

julia> versioninfo()
Julia Version 1.4.1
Platform Info:
  OS: Linux (x86_64-linux-gnu)
  CPU: AMD Ryzen 5 1600 Six-Core Processor
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-8.0.1 (ORCJIT, znver1)
Environment:
  JULIA_NUM_THREADS = 12

(@v1.4) pkg> st ProjectManagement
Status `~/.julia/environments/v1.4/Project.toml`
  [8d6fe0f5] ProjectManagement v1.0.0

(Nothing is displayed.)

Maybe I'm doing something wrong?

@oxinabox
Copy link
Owner

oxinabox commented Feb 2, 2021

No, you are not doing anything wrong.
The docs kind of cheat to make Compose objects render on their own.
They should not do that really.
That should be fixed.

You need to do something to output the Compose object.
E.g.
https://giovineitalia.github.io/Compose.jl/latest/library/#Compose.SVG

@oxinabox
Copy link
Owner

I am not sure it is possible to make the REPL display an image, without e.g. doing some more complicated stuff to add some extra displays to the display stack, like Plot.jl does.
I think it might be possible to make it display in VS-Code's (or Juno's) REPL as they already have the display stuff loaded.
I am looking into this presently

@oxinabox
Copy link
Owner

Turns out this already works fine in VS-Code as is.
I am not sure if there is anything to be done.
Maybe I should be loading some kind of display and pushing that to the stack when this package is loaded.
Like Plots.jl does.
Or maybe i can trick the display that Plots.jl adds into displaying this as a SVG.
(Extreme solution would be to rewrite the chart visualization as a plots revipe ratehr than writing it in Compose.jl)

@schneiderfelipe
Copy link
Author

Not sure if it's a decent solution for ProjectManagement.jl, but maybe implementing a render function could work (as in here, for instance)?

@oxinabox
Copy link
Owner

It's note that bit we need, it is a display capable of displaying anything that is actually graphical.
Which is why it works in VS-Code because it adds such a display to the display-stack.
Gadfly does too.
So if you load Gadfly after loading ProjectManagement.jl it will cause it to display the chart (on my current setup it did this via openning my web-browser, which I guess works.)
We might be able to replicate that behavour.
https://github.com/GiovineItalia/Gadfly.jl/blob/36a7521efda1c025b5b2d3db396618d078f1bda3/src/Gadfly.jl#L1043-L1067
though we would want to make sure our display was near the bottom of the stack I think

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants