Giter Site home page Giter Site logo

immerse.jl's Introduction

splash

Immerse

Build Status

Immerse is a wrapper that adds graphical interactivity to Julia plots. Currently, Immerse supports Gadfly.

Usage

By and large, you plot just as you would in Gadfly:

using Immerse, Distributions
X = rand(MultivariateNormal([0.0, 0.0], [1.0 0.5; 0.5 1.0]), 10000)
plot(x=X[1,:], y=X[2,:], Geom.hexbin)

However, rather than being displayed in a browser window, you'll see your figure in a Gtk window:

window

The toolbar at the top supports saving your figure to a file, zooming and panning, and lasso selection.

Zooming and panning uses the defaults set by GtkUtilities. The left mouse button allows you to rubberband-select a zoom region. Use your mouse wheel or arrow-keys to pan or change the zoom level. Double-click, or press the 1:1 button, to restore the full view.

Lasso selection

The right-most button on the toolbar allows you to select a group of points for further analysis by drawing a "lasso" around them:

lasso

By default, this pops up a dialog asking you which variable in Main you want to save the selected indexes to:

lassodialog

You can alternatively define a custom callback function; see the help for lasso_initialize by typing ?lasso_initialize at the REPL.

Lasso selection is currently implemented only for Geom.point and Geom.line. If you want to try this feature, the demonstration in test/faces.jl can be fun.

Hit testing

You can add extra interactivity by setting up callbacks that run whenever the user clicks on an object. A demonstration of this capability is exhibited in the test/hittesting.jl test script:

hittest

Here the red circles are drawn around the dots that the user clicked on; see also the console output that showed the results of clicking on the line segments between the dots.

Note that hit testing is disabled while the "zoom" button is active. Like lasso selection, this is currently implemented only for Geom.point and Geom.line.

Setting and getting properties

Objects can be modified interactively after their creation:

julia> using Immerse, Colors

julia> hfig = figure()
1

julia> x = linspace(0,4pi,101);

julia> p = plot(x=x, y=sin(x), Geom.line(tag=:line))

julia> setproperty!((hfig,:line), rand(1:5), :linewidth)
3

julia> setproperty!((hfig,:line), RGB(rand(),rand(),rand()), :stroke)
RGB{Float64}(0.9563599683564541,0.20964995278692222,0.997388106654052)

julia> setproperty!((hfig,:line), false, :visible)
false

julia> setproperty!((hfig,:line), true, :visible)
true

julia> getproperty((hfig,:line), :visible)
1-element Array{Bool,1}:
 true

Compose Form and Property objects apply to a vector of objects, which is why getproperty returns a vector.

Figure windows

Each figure is addressed by an integer; for a window displaying a single Gadfly figure, by default this integer appears in the window title.

There are a few simple utilities for working with figure windows:

  • figure() opens a new figure window. This will become the default plotting window.
  • figure(3) raises the corresponding window and makes it the default.
  • gcf() returns the index of the current default figure.
  • scf() shows the current figure (raising the window to the top).
  • closefig(3) destroys Figure 3, closing the window.
  • closeall() closes all open figure windows.

Issues

When I type scf(), nothing happens

Your window manager may have "focus stealing prevention" enabled. For example, under KDE, go to the Kmenu->System Settings->Window behavior->Window behavior (pane)->Focus (tab) and set "Focus stealing prevent" to "None". Alternatively, if you want to limit this change to julia, use the "Window rules" pane and add a new setting where "Window class (application)" is set to "Regular Expression" with value "^julia.*".

immerse.jl's People

Contributors

github-actions[bot] avatar gunnarfarneback avatar jonathanbieler avatar juliatagbot avatar tbreloff avatar timholy avatar tkelman avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

immerse.jl's Issues

LoadError: UndefVarError: mac not defined

getting this error on window machine while running CPLEX

for t=1:PlanningPeriod
      for p=1:NumberofProducttypes
        for i=1:depot-nDepots
          @addConstraints(m,sum{z_ijtpv[j,i,t,p,v],v=1:NumerOfVehicle,j=1:i-1}+sum{z_ijtpv[j,i,t,p,v],v=1:NumerOfVehicle,j=i+1:depot-nDepots}
          -sum{z_ijtpv[i,j,t,p,v],v=1:NumerOfVehicle,j=1:i-1}-sum{z_ijtpv[i,j,t,p,v],v=1:NumerOfVehicle,jj=i+1:depot-nDepots}==r_itp[j,t,p]);
        end
      end
    end

Install error on julia 1.3.1

Hi, I got this error trying to install on julia 1.3.1:

(v1.3) pkg> add Immerse
Updating registry at C:\Users\Kelvyn\.julia\registries\General
Updating git-repo https://github.com/JuliaRegistries/General.git
Resolving package versions...
ERROR: Unsatisfiable requirements detected for package Immerse [2a4eff87]:
Immerse [2a4eff87] log:
├─possible versions are: [0.1.0-0.1.1, 1.0.0] or uninstalled
├─restricted to versions * by an explicit requirement, leaving only versions [0.1.0-0.1.1, 1.0.0]
├─restricted by compatibility requirements with FixedPointNumbers [53c48c17] to versions: 0.1.0-0.1.1 or uninstalled, leaving only versions: 0.1.0-0.1.1
│ └─FixedPointNumbers [53c48c17] log:
│ ├─possible versions are: [0.5.0-0.5.3, 0.6.0-0.6.1, 0.7.0-0.7.1] or uninstalled
│ └─restricted to versions 0.6.1 by an explicit requirement, leaving only versions 0.6.1
└─restricted by compatibility requirements with Gtk [4c0ca9eb] to versions: 1.0.0 or uninstalled — no versions left
└─Gtk [4c0ca9eb] log:
├─possible versions are: [0.16.0-0.16.5, 0.17.0, 0.18.0, 1.0.0, 1.1.0-1.1.2] or uninstalled
└─restricted to versions 1.1.2 by an explicit requirement, leaving only versions 1.1.2

Toggle series visibility

Can you pick up mouse-clicks on a Gadfly legend? If so it would be great to implement the feature of clicking on an item in the legend to hide/show the series in the underlying plot using the setproperty!((hfig,:line), true, :visible) command.

Errors during lasso

I've been seeing this a lot:

WARNING: Error in @guarded callback
ERROR: MethodError: `convert` has no method matching convert(::Type{Tuple{Int64,Int64}}, ::Int64)
This may have arisen from a call to the constructor Tuple{Int64,Int64}(...),
since type constructors fall back to convert methods.
 in push! at array.jl:429
 in find_inmask at /home/tom/.julia/v0.4/Immerse/src/compose.jl:548
 in select_points at /home/tom/.julia/v0.4/Immerse/src/select.jl:77
 [inlined code] from /home/tom/.julia/v0.4/Immerse/src/select.jl:42
 in anonymous at /home/tom/.julia/v0.4/Gtk/src/base.jl:86
 in mouseup_cb at /home/tom/.julia/v0.4/Gtk/src/events.jl:177FATAL ERROR: Gtk state corrupted by error thrown in a callback:   

I thought it was a Plots problem, but I just restarted julia, and did using Immerse; plot(sin,0,π) and saw the same error.

Supporting Plots.jl

Would you like this package to support Plots.jl with all (or at least some) of it’s back-ends in the future, too?

Warnings on package load

In a fresh Julia session, with everything inside ~/.julia/v0.4/.cache and ~/.julia/lib removed right before starting the session:

julia> using Immerse
INFO: Precompiling module Immerse...
WARNING: eval from module Compose to Immerse:    
Expr(:import, :Patchwork)::Any
  ** incremental compilation may be broken for this module **

WARNING: Method definition display(Base.REPL.REPLDisplay, Base.Multimedia.MIME{:text/html}, Gadfly.Plot) in module Gadfly at /home/tlycken/.julia/v0.4/Gadfly/src/Gadfly.jl:968 overwritten in module Immerse at /home/tlycken/.julia/v0.4/Immerse/src/display_gadfly.jl:155.
WARNING: Method definition display(Base.REPL.REPLDisplay{R<:Base.REPL.AbstractREPL}, Base.Multimedia.MIME{:text/html}, Gadfly.Plot) in module Gadfly at /home/tlycken/.julia/v0.4/Gadfly/src/Gadfly.jl:968 overwritten in module Immerse at /home/tlycken/.julia/v0.4/Immerse/src/display_gadfly.jl:155.

The last warning repeats on subsequent loads of the package (in fresh sessions).

This is with Immerse 0.0.10, all other packages on the latest tag, and Julia version 0.4.3-pre+10.

Get coordinates when clicking a point?

I want to display a gadfly/immerse plot on a GtkCanvas and then when I click a point I can get coordinates of that point in the plot's system. But I cannot pin down the exact function in Immerse.jl to transform event.x/y to the real x/y.

installing to julia v1.2

hello, i'm trying to install immerse to julia v1.2 but fail, got error:
ERROR: Unsatisfiable requirements detected for package Gtk [4c0ca9eb]:
Gtk [4c0ca9eb] log:
├─possible versions are: [0.16.0-0.16.5, 0.17.0, 0.18.0, 1.0.0, 1.1.0-1.1.3] or uninstalled
├─restricted to versions 0.18.0 by an explicit requirement, leaving only versions 0.18.0
└─restricted by compatibility requirements with Immerse [2a4eff87] to versions: [0.16.0-0.16.5, 1.0.0, 1.1.0-1.1.3] — no versions left
└─Immerse [2a4eff87] log:
├─possible versions are: [0.1.0-0.1.1, 1.0.0] or uninstalled
└─restricted to versions * by an explicit requirement, leaving only versions [0.1.0-0.1.1, 1.0.0]
how can i install immerse?
thanks in ahead.

error on precompilation on linux

Precompilation fails with

INFO: Precompiling module Immerse... ERROR: LoadError: LoadError: UndefVarError: absolute_native_units not defined while loading /home/andrei/.julia/v0.4/Immerse/src/compose.jl, in expression starting on line 13 while loading /home/andrei/.julia/v0.4/Immerse/src/Immerse.jl, in expression starting on line 31 ERROR: Failed to precompile Immerse to /home/andrei/.julia/lib/v0.4/Immerse.ji in compilecache at ./loading.jl:384

Julia versioninfo() gives:
Commit a2f713d (2016-01-12 21:37 UTC)
Platform Info:
System: Linux (x86_64-linux-gnu)
CPU: AMD FX(tm)-8350 Eight-Core Processor
WORD_SIZE: 64
BLAS: libopenblas (NO_LAPACKE DYNAMIC_ARCH NO_AFFINITY Piledriver)
LAPACK: libopenblas
LIBM: libopenlibm
LLVM: libLLVM-3.8

Failure on mac

I'm getting an error on mac. All the bindeps were handled through brew, and a boatload of them came through. Getting an error when I try to use it in the precompilation. Looks like a package dependency issue?

               _
   _       _ _(_)_     |  A fresh approach to technical computing
  (_)     | (_) (_)    |  Documentation: http://docs.julialang.org
   _ _   _| |_  __ _   |  Type "?help" for help.
  | | | | | | |/ _` |  |
  | | |_| | | | (_| |  |  Version 0.4.1 (2015-11-08 10:33 UTC)
 _/ |\__'_|_|_|\__'_|  |  Official http://julialang.org/ release
|__/                   |  x86_64-apple-darwin13.4.0

julia> using Immerse
INFO: Precompiling module Immerse...
2015-12-03 17:29:58.518 julia[13795:4842540] *** WARNING: Method userSpaceScaleFactor in class NSView is deprecated on 10.7 and later. It should not be used in new applications. Use convertRectToBacking: instead. 
ERROR: LoadError: LoadError: UndefVarError: absolute_native_units not defined
 in include at /Users/viral/Desktop/Julia-0.4.1.app/Contents/Resources/julia/lib/julia/sys.dylib
 in include_from_node1 at /Users/viral/Desktop/Julia-0.4.1.app/Contents/Resources/julia/lib/julia/sys.dylib
 in include at /Users/viral/Desktop/Julia-0.4.1.app/Contents/Resources/julia/lib/julia/sys.dylib
 in include_from_node1 at /Users/viral/Desktop/Julia-0.4.1.app/Contents/Resources/julia/lib/julia/sys.dylib
 [inlined code] from none:2
 in anonymous at no file:0
 in process_options at /Users/viral/Desktop/Julia-0.4.1.app/Contents/Resources/julia/lib/julia/sys.dylib
 in _start at /Users/viral/Desktop/Julia-0.4.1.app/Contents/Resources/julia/lib/julia/sys.dylib
while loading /Users/viral/.julia/v0.4/Immerse/src/compose.jl, in expression starting on line 13
while loading /Users/viral/.julia/v0.4/Immerse/src/Immerse.jl, in expression starting on line 31
ERROR: Failed to precompile Immerse to /Users/viral/.julia/lib/v0.4/Immerse.ji
 in error at /Users/viral/Desktop/Julia-0.4.1.app/Contents/Resources/julia/lib/julia/sys.dylib
 in compilecache at loading.jl:384
 in require at /Users/viral/Desktop/Julia-0.4.1.app/Contents/Resources/julia/lib/julia/sys.dylib

Error when zoom is used

Hi @timholy In trying to get GtkInteract to work with Immerse I found a condition that generates a crash. Here are the steps:

using Immerse
plot(x=rand(6), y=rand(6))

Click on magnifying glass and select a region to zoom, then

plot(x=rand(6), y=rand(6))

Then try selecting a region to zoom. These steps result in:

ERROR: KeyError: xview not found
 in getindex at /Users/verzani/.julia/v0.4/GtkUtilities/src/guidata.jl:28
 in zoom_bb at /Users/verzani/.julia/v0.4/GtkUtilities/src/panzoom.jl:464
 in anonymous at /Users/verzani/.julia/v0.4/GtkUtilities/src/panzoom.jl:412
 in rubberband_stop at /Users/verzani/.julia/v0.4/GtkUtilities/src/rubberband.jl:109
 in anonymous at /Users/verzani/.julia/v0.4/GtkUtilities/src/rubberband.jl:75
 in mouseup_cb at /Users/verzani/.julia/v0.4/Gtk/src/events.jl:177
 in anonymous at /Users/verzani/.julia/v0.4/Gtk/src/events.jl:2
 in g_sigatom at /Users/verzani/.julia/v0.4/Gtk/src/GLib/signals.jl:168
 in gtk_main at /Users/verzani/.julia/v0.4/Gtk/src/events.jl:1

This all on my macbook.

I don't know if just checking existence of the key xview is sufficient, or if the guidata is using a new canvas object for the look up.

Icons and possible segfault

OSX users seem to get some pretty non-intuitive icons (see #11).

@pagnani also reported a segfault when clicking the "Save as" icon twice; @pagnani, can you provide more detail? Did the save dialog open after the first click?

Immerse cannot load on 1.5

ERROR: LoadError: Evaluation into the closed module `Compose` breaks incremental compilation because the side effects will not be permanent. This is likely due to some other module mutating `Compose` with `eval` during precompilation - don't do this.

This was turned into an derror in 1.5.

Plot not showing on OSX 10.10.5

Dear Tim,

I was really looking forward to something like Immerse to switch to Gadfly and getting rid of PyPlot. Thanks for this package!
Of course there are issues with my installation. I'm on

Julia Version 0.4.0-rc2
Commit fa52609* (2015-09-18 17:51 UTC)
Platform Info:
  System: Darwin (x86_64-apple-darwin14.5.0)
  CPU: Intel(R) Core(TM) i7-4870HQ CPU @ 2.50GHz
  WORD_SIZE: 64
  uname: Darwin 14.5.0 Darwin Kernel Version 14.5.0: Wed Jul 29 02:26:53 PDT 2015; root:xnu-2782.40.9~1/RELEASE_X86_64 x86_64 i386
Memory: 16.0 GB (9336.08984375 MB free)
Uptime: 39023.0 sec
Load Avg:  1.42578125  1.3916015625  1.37109375
Intel(R) Core(TM) i7-4870HQ CPU @ 2.50GHz:
       speed         user         nice          sys         idle          irq
#1  2500 MHz       2979 s          0 s       1740 s      45911 s          0 s
#2  2500 MHz        149 s          0 s         92 s      50372 s          0 s
#3  2500 MHz       2600 s          0 s        789 s      47227 s          0 s
#4  2500 MHz        154 s          0 s         96 s      50361 s          0 s
#5  2500 MHz       2401 s          0 s        776 s      47438 s          0 s
#6  2500 MHz        153 s          0 s         94 s      50363 s          0 s
#7  2500 MHz       2453 s          0 s        772 s      47389 s          0 s
#8  2500 MHz        150 s          0 s         93 s      50365 s          0 s

  BLAS: libopenblas (USE64BITINT DYNAMIC_ARCH NO_AFFINITY Haswell)
  LAPACK: libopenblas
  LIBM: libopenlibm
  LLVM: libLLVM-3.3
Environment:
  MANPATH = /opt/local/share/man:
  TERM = xterm-256color
  PATH = /Users/pagnani/.julia/v0.4/Homebrew/deps/usr/bin:/Users/pagnani/.julia/v0.4/Homebrew/deps/usr/sbin:/usr/local/ncbi/blast/bin/:/Developer/NVIDIA/CUDA-6.5/bin:/usr/local/bin/:/opt/local/bin:/opt/local/sbin:/opt/local/libexec/gnubin:/usr/bin:/bin:/usr/sbin:/sbin:/Users/pagnani/bin:/opt/local/lib/mysql56/bin
  XPC_FLAGS = 0x0
  HOME = /Users/pagnani
  DYLD_LIBRARY_PATH = /Users/pagnani/lib/yeppp-1.0.0/binaries/macosx/x86_64:/usr/local/cuda/lib:/Developer/NVIDIA/CUDA-6.5/lib:
  JULIA_EDITOR = /Users/pagnani/bin/xem
  HOMEBREW_CACHE = /Users/pagnani/Library/Caches/Homebrew.jl/

Package Directory: /Users/pagnani/.julia/v0.4


19 required packages:
 - BinDeps                       0.3.17
 - CUDA                          0.1.0
 - Docile                        0.5.19
 - Gadfly                        0.3.16
 - Gurobi                        0.1.29
 - HDF5                          0.5.5
 - Immerse                       0.0.5
 - JLD                           0.5.4
 - Jewel                         1.0.6
 - JuMP                          0.10.1
 - LsqFit                        0.0.1
 - MAT                           0.2.12
 - Markdown                      0.3.0
 - MathProgBase                  0.3.17
 - NLsolve                       0.4.0              master
 - ProfileView                   0.1.0
 - ProgressMeter                 0.2.0
 - PyCall                        1.0.3
 - PyPlot                        2.1.0
56 additional packages:
 - ArrayViews                    0.6.4
 - Blosc                         0.1.4
 - Cairo                         0.2.31
 - Calculus                      0.1.11
 - Codecs                        0.1.4
 - ColorTypes                    0.1.5
 - Colors                        0.5.4
 - Compat                        0.7.3
 - Compose                       0.3.15
 - Contour                       0.0.7
 - DataArrays                    0.2.18
 - DataFrames                    0.6.9
 - DataStructures                0.3.13
 - Dates                         0.4.4
 - Distances                     0.2.0
 - Distributions                 0.8.7
 - DualNumbers                   0.1.3
 - FactCheck                     0.4.0
 - FastaIO                       0.1.3
 - FixedPointNumbers             0.0.11
 - GZip                          0.2.18
 - GaussDCA                      0.0.0-             master (unregistered)
 - Graphics                      0.1.3
 - Grid                          0.3.11
 - Gtk                           0.9.0
 - GtkUtilities                  0.0.5
 - Hexagons                      0.0.4
 - Homebrew                      0.1.16
 - HttpCommon                    0.2.3
 - ImmutableArrays               0.0.10
 - Iterators                     0.1.9
 - JSON                          0.4.6
 - JuliaParser                   0.6.3
 - KernelDensity                 0.1.1
 - LNR                           0.0.1
 - LaTeXStrings                  0.1.5
 - Lazy                          0.10.0
 - Loess                         0.0.4
 - MacroTools                    0.2.0
 - MacroUtils                    0.0.0-             master (unregistered)
 - NLopt                         0.2.3
 - NaNMath                       0.1.0
 - Optim                         0.4.2
 - PDMats                        0.3.6
 - PlmDCA                        0.0.0-             master (unregistered)
 - Reexport                      0.0.3
 - Requires                      0.2.0
 - ReverseDiffSparse             0.2.10
 - SHA                           0.1.2
 - Showoff                       0.0.5
 - SortingAlgorithms             0.0.6
 - StatsBase                     0.7.3
 - StatsFuns                     0.1.4
 - URIParser                     0.1.0
 - WoodburyMatrices              0.1.2
 - Zlib                          0.1.9

I did the Pkg.update() and added Immerse. After a very long list of warnings (due I guess mostly to the new semantic induced by 0.4).

Finally the using Immerse produces some some strange warning:

2015-09-21 09:53:20.416 julia[7058:42143] *** WARNING: Method userSpaceScaleFactor in class NSView is deprecated on 10.7 and later. It should not be used in new applications. Use convertRectToBacking: instead.
WARNING: Method definition display(Base.REPL.REPLDisplay{R<:Base.REPL.AbstractREPL}, Base.Multimedia.MIME{:text/html}, Gadfly.Plot) in module Gadfly at /Users/pagnani/.julia/v0.4/Gadfly/src/Gadfly.jl:1033 overwritten in module Immerse at /Users/pagnani/.julia/v0.4/Immerse/src/display_gadfly.jl:144.
WARNING: Method definition draw(Compose.Backend, Compose.Context) in module Compose at /Users/pagnani/.julia/v0.4/Compose/src/container.jl:404 overwritten in module Immerse at /Users/pagnani/.julia/v0.4/Immerse/src/compose.jl:33.

which however might not be too bad. The problem is that when I try a

t=0:0.01:2π; plot(x = t, y = sin(t))

it triggers a huge number of further warnings which end up in a blank window (without the sinusoidal plot) and lots of Gtk warnings of the type

<unknown>:7058): Gtk-WARNING **: drawing failure for widget `GtkWindow': invalid value (typically too big) for the size of the input (surface, pattern, etc.)

I suspect that the problem is Gtk but I tried some simple stuff there and it seems to work.

Thanks again for your work

Andrea

a lot of warnings and an Error in @guarded callback

First of all, congratulations, you won a race. I was planning since you brought in the Compose render split, to publish something similar (zoom+pan and select) but i couldn't spend that much time ...

Running the first example:

lobi@orange4:~/juliarepo$ ../julia04/julia 
               _
   _       _ _(_)_     |  A fresh approach to technical computing
  (_)     | (_) (_)    |  Documentation: http://docs.julialang.org
   _ _   _| |_  __ _   |  Type "?help" for help.
  | | | | | | |/ _` |  |
  | | |_| | | | (_| |  |  Version 0.4.0-rc1 (2015-09-09 16:07 UTC)
 _/ |\__'_|_|_|\__'_|  |  
|__/                   |  x86_64-linux-gnu

julia> using Immerse, Distributions

** (julia:13385): WARNING **: Couldn't connect to accessibility bus: Failed to connect to socket /tmp/dbus-MLK2dFBJGs: Connection refused
INFO: Recompiling stale cache file /home/lobi/.julia/lib/v0.4/Compose.ji for module Compose.
WARNING: `require` is deprecated, use `using` or `import` instead
 in depwarn at deprecated.jl:73
 in require at deprecated.jl:663
 in isinstalled at /home/lobi/.julia/v0.4/Compose/src/Compose.jl:36
 in include at ./boot.jl:260
 in include_from_node1 at ./loading.jl:271
 [inlined code] from none:2
 in anonymous at no file:0
 in process_options at ./client.jl:284
 in _start at ./client.jl:411
while loading /home/lobi/.julia/v0.4/Compose/src/Compose.jl, in expression starting on line 149
INFO: Recompiling stale cache file /home/lobi/.julia/lib/v0.4/Gadfly.ji for module Gadfly.
WARNING: `require` is deprecated, use `using` or `import` instead
 in depwarn at deprecated.jl:73
 in require at deprecated.jl:663
 in isinstalled at /home/lobi/.julia/v0.4/Compose/src/Compose.jl:36
 in include at ./boot.jl:260
 in include_from_node1 at ./loading.jl:271
 [inlined code] from none:2
 in anonymous at no file:0
 in process_options at ./client.jl:284
 in _start at ./client.jl:411
while loading /home/lobi/.julia/v0.4/Gadfly/src/Gadfly.jl, in expression starting on line 944
INFO: Recompiling stale cache file /home/lobi/.julia/lib/v0.4/Immerse.ji for module Immerse.

** (julia:13546): WARNING **: Couldn't connect to accessibility bus: Failed to connect to socket /tmp/dbus-MLK2dFBJGs: Connection refused
WARNING: Method definition draw(Compose.Backend, Compose.Context) in module Compose at /home/lobi/.julia/v0.4/Compose/src/container.jl:404 overwritten in module ImmerseCompose at /home/lobi/.julia/v0.4/Immerse/src/compose.jl:33.
WARNING: Method definition display(Base.REPL.REPLDisplay, Base.Multimedia.MIME{:text/html}, Gadfly.Plot) in module Gadfly at /home/lobi/.julia/v0.4/Gadfly/src/Gadfly.jl:1033 overwritten in module DisplayGadfly at /home/lobi/.julia/v0.4/Immerse/src/display_gadfly.jl:116.
WARNING: Method definition display(Base.REPL.REPLDisplay{R<:Base.REPL.AbstractREPL}, Base.Multimedia.MIME{:text/html}, Gadfly.Plot) in module Gadfly at /home/lobi/.julia/v0.4/Gadfly/src/Gadfly.jl:1033 overwritten in module DisplayGadfly at /home/lobi/.julia/v0.4/Immerse/src/display_gadfly.jl:116.
WARNING: Method definition draw(Compose.Backend, Compose.Context) in module Compose at /home/lobi/.julia/v0.4/Compose/src/container.jl:404 overwritten in module ImmerseCompose at /home/lobi/.julia/v0.4/Immerse/src/compose.jl:33.

julia> X = rand(MultivariateNormal([0.0, 0.0], [1.0 0.5; 0.5 1.0]), 10000);

julia> plot(x=X[1,:], y=X[2,:], Geom.hexbin)

brings up a window. However, if i use the lasso select (without touching pan and zoom), i get:

julia> WARNING: Error in @guarded callback
ERROR: MethodError: `find_inmask` has no method matching find_inmask(::Compose.Image{Compose.CairoBackend}, ::Tuple{Compose.IdentityTransform,Compose.UnitBox{Float64,Float64,Float64,Float64},Compose.AbsoluteBoundingBox}, ::Compose.Form{Compose.SimplePolygonPrimitive{P<:Compose.Point{XM<:Compose.Measure{S,T},YM<:Compose.Measure{S,T}}}}, ::Array{Bool,2})
Closest candidates are:
  find_inmask(::Compose.Backend, ::Any, ::Compose.Form{P<:Compose.CirclePrimitive{P<:Compose.Point{XM<:Compose.Measure{S,T},YM<:Compose.Measure{S,T}},M<:Compose.Measure{S,T}}}, ::Any)
  find_inmask(::Compose.Backend, ::Any, ::Compose.Form{P<:Compose.LinePrimitive{P<:Compose.Point{XM<:Compose.Measure{S,T},YM<:Compose.Measure{S,T}}}}, ::Any)
 in select_points at /home/lobi/.julia/v0.4/Immerse/src/select.jl:77
 [inlined code] from /home/lobi/.julia/v0.4/Immerse/src/select.jl:42
 in anonymous at /home/lobi/.julia/v0.4/Gtk/src/base.jl:86
 in mouseup_cb at /home/lobi/.julia/v0.4/Gtk/src/events.jl:177

The warnings about the accessibility bus you can exclude, this is an artifact on running Gtk on a non-GNOME window manager.

zoom does not work (on windows)

I just installed Julia 0.4 and went on to try out Immerse. However, in the first example from the readme I encounter a problem with the zoom button. After selecting a region of the plot like this:
img02

The plot is updated to:
img03

If I select a small enough fragment of the plot the x and y axes change but the zoom is not performed:
img04

Here is my versioninfo():

Julia Version 0.4.0
Commit 0ff703b* (2015-10-08 06:20 UTC)
Platform Info:
  System: Windows (x86_64-w64-mingw32)
  CPU: Intel(R) Core(TM) i7-3770 CPU @ 3.40GHz
  WORD_SIZE: 64
  BLAS: libopenblas (USE64BITINT DYNAMIC_ARCH NO_AFFINITY Sandybridge)
  LAPACK: libopenblas64_
  LIBM: libopenlibm
  LLVM: libLLVM-3.3

Lasso and mouse/keyboard zooming and panning are not working

Hi!

I have found this issue using Immerse v1.0.1 in Julia 1.6.2 (Ubuntu 18.04):

julia> using Immerse, Distributions
Gtk-Message: 13:44:24.950: Failed to load module "canberra-gtk-module"
Gtk-Message: 13:44:24.951: Failed to load module "canberra-gtk-module"
┌ Warning: Replacing docs for `Compose.PNG :: Union{}` in module `Compose`
└ @ Base.Docs docs/Docs.jl:240
┌ Warning: Replacing docs for `Compose.PDF :: Union{}` in module `Compose`
└ @ Base.Docs docs/Docs.jl:240
┌ Warning: Replacing docs for `Compose.PS :: Union{}` in module `Compose`
└ @ Base.Docs docs/Docs.jl:240

julia> X = rand(MultivariateNormal([0.0, 0.0], [1.0 0.5; 0.5 1.0]), 100)
2×100 Matrix{Float64}:
 -1.58054  0.635519  1.38265   -1.35818   -0.582593  -1.85562  1.28679   1.31092  -1.13938   -0.767586     -0.268533  -2.67896  0.936021  0.359858   1.61448   -0.0652832  -0.183513  -0.988957    0.107733
 -1.57079  0.581797  0.252229  -0.246157   0.272676  -1.8522   0.916983  1.44717  -0.151607   0.0664412      0.572089  -1.0528   1.10533   1.04872   -0.504889   0.703932    0.143832  -0.0382208  -0.428482

julia> plot(x=X[1,:], y=X[2,:], Geom.point)


julia> versioninfo(verbose=true)
Julia Version 1.6.2
Commit 1b93d53fc4 (2021-07-14 15:36 UTC)
Platform Info:
  OS: Linux (x86_64-pc-linux-gnu)
      Ubuntu 18.04.2 LTS (beaver-osp1-bowen X37)
  uname: Linux 5.4.0-84-generic #94~18.04.1-Ubuntu SMP Thu Aug 26 23:17:46 UTC 2021 x86_64 x86_64
  CPU: Intel(R) Core(TM) i7-10850H CPU @ 2.70GHz: 
                 speed         user         nice          sys         idle          irq
       #1-12  3600 MHz     116330 s        344 s      32642 s   11086547 s          0 s
       
  Memory: 15.249576568603516 GB (4982.1796875 MB free)
  Uptime: 101249.0 sec
  Load Avg:  1.55517578125  1.4638671875  1.5400390625
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-11.0.1 (ORCJIT, skylake)
Environment:
  MANDATORY_PATH = /usr/share/gconf/ubuntu.mandatory.path
  DEFAULTS_PATH = /usr/share/gconf/ubuntu.default.path
  HOME = /home/diego
  WINDOWPATH = 2
  TERM = xterm-256color
  PATH = /home/diego/.local/bin:/home/diego/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/home/diego/bin:/home/diego/.local/bin
  FONTCONFIG_PATH = /home/diego/.julia/artifacts/387d89822da323c098aba6f8ab316874d4e90f2e/etc/fonts

(jl_JPHJsQ) pkg> st
      Status `/tmp/jl_JPHJsQ/Project.toml`
  [31c24e10] Distributions v0.24.18
  [2a4eff87] Immerse v1.0.1

Do you have the same problem?

Best,

TagBot trigger issue

This issue is used to trigger TagBot; feel free to unsubscribe.

If you haven't already, you should update your TagBot.yml to include issue comment triggers.
Please see this post on Discourse for instructions and more details.

Subplots in Plots.jl

Hi Tim. I'm working on supporting this in Plots.jl. I'm super close to finishing, I'm just trying to get the display commands correct. If I have a Gadfly.Plot object, then it seems straightforward to update a plot and re-display it to the same canvas. However when I try to update a subplot (built using Compose.hstack and Compose.vstack, it always creates a new window.

So my question... if I have a Immerse.Figure object and a stale Compose.Context (which needs to be re-drawn), what do I need to do to update the context and figure? (but don't create a new figure)

Making Figure usable inside another Gtk application?

I've been playing a bit with using Immerse in a Gtk application, the main change I had to do is to make Figure a subtype of GtkWidget, so it can be pushed inside a GtkContainer. Then I can overwrite Immerse.figure in my code to push the figure inside a container instead of putting it in a new window:

http://i.imgur.com/XA6waa8.png

Would that be a viable design for Immerse, or is there a reason why Figure isn't a Widget ?

The only issue I still have is that my plots do not display (I really don't understand how this display business works), so I have to call display(plot(...

master...jonathanBieler:widget_fig

(I also reduced the icon size)

Theme(background_color=nothing) not respected

When using Gadfly through Jupyter, I can create a plot with transparent background like this

pp = plot(x=rand(10), y=rand(10), Geom.point, Theme(panel_fill=colorant"white", background_color=nothing))
draw(PDF("/tmp/test.pdf", 10cm, 10cm), pp)

However, when I do this from the REPL using Immerse, the resulting PDF has a white background.

Not working on Mac 10.10.5?

While trying to run the first example from the README, an empty window appears with the title "Figure 1" and then I get the following long series of errors. If I run the plot(...) line again the figure shows up, but not the toolbar. Any ideas?

julia> versioninfo()
Julia Version 0.4.0-rc1
Commit e5c6964 (2015-09-09 16:07 UTC)
Platform Info:
  System: Darwin (x86_64-apple-darwin13.4.0)
  CPU: Intel(R) Core(TM) i7-4870HQ CPU @ 2.50GHz
  WORD_SIZE: 64
  BLAS: libopenblas (USE64BITINT DYNAMIC_ARCH NO_AFFINITY Haswell)
  LAPACK: libopenblas
  LIBM: libopenlibm
  LLVM: libLLVM-3.3

julia> using Immerse, Distributions
2015-09-17 15:23:03.954 julia[66744:1341707] *** WARNING: Method userSpaceScaleFactor in class NSView is deprecated on 10.7 and later. It should not be used in new applications. Use convertRectToBacking: instead. 
WARNING: Method definition display(Base.REPL.REPLDisplay{R<:Base.REPL.AbstractREPL}, Base.Multimedia.MIME{:text/html}, Gadfly.Plot) in module Gadfly at /Users/joshday/.julia/v0.4/Gadfly/src/Gadfly.jl:1033 overwritten in module Immerse at /Users/joshday/.julia/v0.4/Immerse/src/display_gadfly.jl:144.
WARNING: Method definition draw(Compose.Backend, Compose.Context) in module Compose at /Users/joshday/.julia/v0.4/Compose/src/container.jl:404 overwritten in module Immerse at /Users/joshday/.julia/v0.4/Immerse/src/compose.jl:33.

julia> X = rand(MultivariateNormal([0.0, 0.0], [1.0 0.5; 0.5 1.0]), 10000)
2x10000 Array{Float64,2}:
 0.542495  1.4314    0.260366   0.42114     -1.85487  0.680662  1.33033
 0.580845  1.79475  -0.792468  -0.672008     -1.28063  0.589417  1.58598

julia> plot(x=X[1,:], y=X[2,:], Geom.hexbin)

(<unknown>:66744): GdkPixbuf-CRITICAL **: gdk_pixbuf_get_width: assertion 'GDK_IS_PIXBUF (pixbuf)' failed

(<unknown>:66744): GdkPixbuf-CRITICAL **: gdk_pixbuf_get_height: assertion 'GDK_IS_PIXBUF (pixbuf)' failed

(<unknown>:66744): GdkPixbuf-CRITICAL **: gdk_pixbuf_get_width: assertion 'GDK_IS_PIXBUF (pixbuf)' failed

(<unknown>:66744): GdkPixbuf-CRITICAL **: gdk_pixbuf_get_width: assertion 'GDK_IS_PIXBUF (pixbuf)' failed

(<unknown>:66744): GdkPixbuf-CRITICAL **: gdk_pixbuf_get_height: assertion 'GDK_IS_PIXBUF (pixbuf)' failed

(<unknown>:66744): GdkPixbuf-CRITICAL **: gdk_pixbuf_get_height: assertion 'GDK_IS_PIXBUF (pixbuf)' failed

(<unknown>:66744): GdkPixbuf-CRITICAL **: gdk_pixbuf_scale_simple: assertion 'GDK_IS_PIXBUF (src)' failed

julia> 
(<unknown>:66744): Gtk-WARNING **: Could not find the icon 'document-save-as'. The 'hicolor' theme
was not found either, perhaps you need to install it.
You can get a copy from:
    http://icon-theme.freedesktop.org/releases

(<unknown>:66744): Gtk-WARNING **: Error loading theme icon 'document-save-as' for stock: Icon 'document-save-as' not present in theme

(<unknown>:66744): Gtk-WARNING **: Error loading theme icon 'image-missing' for stock: Icon 'image-missing' not present in theme

(<unknown>:66744): GLib-GObject-CRITICAL **: g_object_ref: assertion 'G_IS_OBJECT (object)' failed

(<unknown>:66744): GdkPixbuf-CRITICAL **: gdk_pixbuf_get_n_channels: assertion 'GDK_IS_PIXBUF (pixbuf)' failed

(<unknown>:66744): GdkPixbuf-CRITICAL **: gdk_pixbuf_get_width: assertion 'GDK_IS_PIXBUF (pixbuf)' failed

(<unknown>:66744): GdkPixbuf-CRITICAL **: gdk_pixbuf_get_height: assertion 'GDK_IS_PIXBUF (pixbuf)' failed

(<unknown>:66744): GdkPixbuf-CRITICAL **: gdk_pixbuf_get_width: assertion 'GDK_IS_PIXBUF (pixbuf)' failed

(<unknown>:66744): GdkPixbuf-CRITICAL **: gdk_pixbuf_get_height: assertion 'GDK_IS_PIXBUF (pixbuf)' failed

(<unknown>:66744): GdkPixbuf-CRITICAL **: gdk_pixbuf_get_pixels: assertion 'GDK_IS_PIXBUF (pixbuf)' failed

(<unknown>:66744): GdkPixbuf-CRITICAL **: gdk_pixbuf_get_rowstride: assertion 'GDK_IS_PIXBUF (pixbuf)' failed

(<unknown>:66744): GdkPixbuf-CRITICAL **: gdk_pixbuf_get_n_channels: assertion 'GDK_IS_PIXBUF (pixbuf)' failed

(<unknown>:66744): GLib-GObject-CRITICAL **: g_object_unref: assertion 'G_IS_OBJECT (object)' failed

(<unknown>:66744): Gtk-WARNING **: Error loading theme icon 'edit-find' for stock: Icon 'edit-find' not present in theme

(<unknown>:66744): Gtk-WARNING **: Error loading theme icon 'image-missing' for stock: Icon 'image-missing' not present in theme

(<unknown>:66744): GLib-GObject-CRITICAL **: g_object_ref: assertion 'G_IS_OBJECT (object)' failed

(<unknown>:66744): GdkPixbuf-CRITICAL **: gdk_pixbuf_get_n_channels: assertion 'GDK_IS_PIXBUF (pixbuf)' failed

(<unknown>:66744): GdkPixbuf-CRITICAL **: gdk_pixbuf_get_width: assertion 'GDK_IS_PIXBUF (pixbuf)' failed

(<unknown>:66744): GdkPixbuf-CRITICAL **: gdk_pixbuf_get_height: assertion 'GDK_IS_PIXBUF (pixbuf)' failed

(<unknown>:66744): GdkPixbuf-CRITICAL **: gdk_pixbuf_get_width: assertion 'GDK_IS_PIXBUF (pixbuf)' failed

(<unknown>:66744): GdkPixbuf-CRITICAL **: gdk_pixbuf_get_height: assertion 'GDK_IS_PIXBUF (pixbuf)' failed

(<unknown>:66744): GdkPixbuf-CRITICAL **: gdk_pixbuf_get_pixels: assertion 'GDK_IS_PIXBUF (pixbuf)' failed

(<unknown>:66744): GdkPixbuf-CRITICAL **: gdk_pixbuf_get_rowstride: assertion 'GDK_IS_PIXBUF (pixbuf)' failed

(<unknown>:66744): GdkPixbuf-CRITICAL **: gdk_pixbuf_get_n_channels: assertion 'GDK_IS_PIXBUF (pixbuf)' failed

(<unknown>:66744): GLib-GObject-CRITICAL **: g_object_unref: assertion 'G_IS_OBJECT (object)' failed

(<unknown>:66744): Gtk-WARNING **: Error loading theme icon 'zoom-original' for stock: Icon 'zoom-original' not present in theme

(<unknown>:66744): Gtk-WARNING **: Error loading theme icon 'image-missing' for stock: Icon 'image-missing' not present in theme

(<unknown>:66744): GLib-GObject-CRITICAL **: g_object_ref: assertion 'G_IS_OBJECT (object)' failed

(<unknown>:66744): GdkPixbuf-CRITICAL **: gdk_pixbuf_get_n_channels: assertion 'GDK_IS_PIXBUF (pixbuf)' failed

(<unknown>:66744): GdkPixbuf-CRITICAL **: gdk_pixbuf_get_width: assertion 'GDK_IS_PIXBUF (pixbuf)' failed

(<unknown>:66744): GdkPixbuf-CRITICAL **: gdk_pixbuf_get_height: assertion 'GDK_IS_PIXBUF (pixbuf)' failed

(<unknown>:66744): GdkPixbuf-CRITICAL **: gdk_pixbuf_get_width: assertion 'GDK_IS_PIXBUF (pixbuf)' failed

(<unknown>:66744): GdkPixbuf-CRITICAL **: gdk_pixbuf_get_height: assertion 'GDK_IS_PIXBUF (pixbuf)' failed

(<unknown>:66744): GdkPixbuf-CRITICAL **: gdk_pixbuf_get_pixels: assertion 'GDK_IS_PIXBUF (pixbuf)' failed

(<unknown>:66744): GdkPixbuf-CRITICAL **: gdk_pixbuf_get_rowstride: assertion 'GDK_IS_PIXBUF (pixbuf)' failed

(<unknown>:66744): GdkPixbuf-CRITICAL **: gdk_pixbuf_get_n_channels: assertion 'GDK_IS_PIXBUF (pixbuf)' failed

(<unknown>:66744): GLib-GObject-CRITICAL **: g_object_unref: assertion 'G_IS_OBJECT (object)' failed

(<unknown>:66744): Gtk-WARNING **: drawing failure for widget `GtkImage': invalid value (typically too big) for the size of the input (surface, pattern, etc.)

(<unknown>:66744): Gtk-WARNING **: drawing failure for widget `GtkBox': invalid value (typically too big) for the size of the input (surface, pattern, etc.)

(<unknown>:66744): Gtk-WARNING **: drawing failure for widget `GtkButton': invalid value (typically too big) for the size of the input (surface, pattern, etc.)

(<unknown>:66744): Gtk-WARNING **: drawing failure for widget `GtkToolButton': invalid value (typically too big) for the size of the input (surface, pattern, etc.)

(<unknown>:66744): Gtk-WARNING **: drawing failure for widget `GtkToolbar': invalid value (typically too big) for the size of the input (surface, pattern, etc.)

(<unknown>:66744): Gtk-WARNING **: drawing failure for widget `GtkBox': invalid value (typically too big) for the size of the input (surface, pattern, etc.)

(<unknown>:66744): Gtk-WARNING **: drawing failure for widget `GtkWindow': invalid value (typically too big) for the size of the input (surface, pattern, etc.)

Hit Test ":dots not found" Error

Hi,

I am getting this error on Mac (High Sierra 10.13.6) when I try the hittesting.jl with Julia v 1.7.3:

WARNING: both Cairo and Compose export "circle"; uses of it in module Immerse must be qualified
┌ Warning: Error in @guarded callback
│ exception =
│ KeyError: key :dots not found
│ Stacktrace:
│ [1] getindex(h::Dict{Symbol, Any}, key::Symbol)
│ @ Base ./dict.jl:481
│ [2] hitcb(figno::Int64, f::Figure, event::Gtk.GdkEventButton)
│ @ Immerse ~/.julia/packages/Immerse/W7nRQ/src/hit_test.jl:100
│ [3] (::Immerse.var"#20#21"{Figure, Int64})(widget::GtkCanvas, event::Gtk.GdkEventButton)
│ @ Immerse ~/.julia/packages/Gtk/OyCvN/src/base.jl:112
│ [4] mousedown_cb(ptr::Ptr{GObject}, eventp::Ptr{Gtk.GdkEventButton}, this::Gtk.MouseHandler)
│ @ Gtk ~/.julia/packages/Gtk/OyCvN/src/events.jl:126
│ [5] (::Gtk.var"#253#254")()
│ @ Gtk ~/.julia/packages/Gtk/OyCvN/src/events.jl:2
│ [6] g_sigatom(f::Any)
│ @ Gtk.GLib ~/.julia/packages/Gtk/OyCvN/src/GLib/signals.jl:176
│ [7] gtk_main()
│ @ Gtk ~/.julia/packages/Gtk/OyCvN/src/events.jl:1
└ @ Immerse ~/.julia/packages/Gtk/OyCvN/src/base.jl:114

And, when Immerse first called I got this warning:

┌ Warning: Replacing docs for Compose.PS :: Union{} in module Compose

I could not find a similar issue, so I hope someone here knows how to solve that.

Crash when using Immerse and PyPlot

Julia crashes when using PyPlot with Immerse, PyPlot however seems to work fine with for example Gadfly. I'm running Julia v0.4.2. (I updated julia to 0.4.4 and all the packages, and problem persists). Minimum example:

import PyPlot
import Immerse
Immerse.plot(y=1:10)

The same problem occurs with using. I get the following trace

/work/mattiasf/julia/julia: symbol lookup error: /lib64/libpangoft2-1.0.so.0: undefined symbol: FcWeightFromOpenType

I have also experience the following error

GLib:ERROR:gmain.c:3078:g_main_dispatch: assertion failed: (source)

signal (6): Aborted
gsignal at /lib64/libc.so.6 (unknown line)
abort at /lib64/libc.so.6 (unknown line)
g_assertion_message at /lib64/libglib-2.0.so.0 (unknown line)
g_assertion_message_expr at /lib64/libglib-2.0.so.0 (unknown line)
g_main_context_dispatch at /lib64/libglib-2.0.so.0 (unknown line)
unknown function (ip: 0x7f6aae542e20)
g_main_loop_run at /lib64/libglib-2.0.so.0 (unknown line)
gtk_main at /lib64/libgtk-3.so (unknown line)
anonymous at /local/home/mattiasf/.julia/v0.4/Gtk/src/events.jl:2
g_sigatom at /local/home/mattiasf/.julia/v0.4/Gtk/src/GLib/signals.jl:168
gtk_main at /local/home/mattiasf/.julia/v0.4/Gtk/src/events.jl:1
jlcall_gtk_main_22812 at  (unknown line)
jl_apply_generic at /work/mattiasf/julia/usr/bin/../lib/libjulia.so (unknown line)
unknown function (ip: 0x7f6cdca7c944)
unknown function (ip: (nil))
Aborted (core dumped)

Immerse and Images

I was looking for a way to interact with images (selection of points, etc...) and I was wondering if there are any plans on incorporating ImageView functionality with Immerse.

Fast Drawing

Maybe this should not be a issue on Immerse. Just ask for help.

I want to make a real-time annimation like this

using Immerse,Gtk.ShortNames
w = @Window("hi",1000,400) |> (c = @Canvas())
showall(w)
p = plot(y=[rand()], Geom.line, Coord.cartesian(xmin=1, xmax=10000, ymin=0, ymax=1))
display(c,Figure(p))
for i=1:10000
    push!(p.layers[1].mapping[:y],rand())
    display(c,Figure(p))
    sleep(0.0001)
end

At every time step, I have to use display(c,Figure(p)) to redraw the plot. When the number of points become large (>10000), the drawing process is slow. Is there a smart way to preserve the previous drawing on the canvas?

Crash when trying to zoom on empty figure

When running this

using Immerse
figure()

And then clicking on the zoom icon I get:

julia> FATAL ERROR: Gtk state corrupted by error thrown in a callback:
ERROR: MethodError: `getindex` has no method matching getindex(::Void, ::Int64)
 in _aes at /Users/bieler/.julia/v0.4/Immerse/src/display_gadfly.jl:58
 in call at /Users/bieler/.julia/v0.4/Immerse/src/display_gadfly.jl:444
 in panzoom_cb at /Users/bieler/.julia/v0.4/Immerse/src/display_gadfly.jl:467
 in panzoom_wrapper at /Users/bieler/.julia/v0.4/Immerse/src/display_gadfly.jl:225
 in anonymous at /Users/bieler/.julia/v0.4/Gtk/src/events.jl:2
 in g_sigatom at /Users/bieler/.julia/v0.4/Gtk/src/GLib/signals.jl:168
 in gtk_main at /Users/bieler/.julia/v0.4/Gtk/src/events.jl:1

ERROR (unhandled task failure): MethodError: `getindex` has no method matching getindex(::Void, ::Int64)
 in _aes at /Users/bieler/.julia/v0.4/Immerse/src/display_gadfly.jl:58
 in call at /Users/bieler/.julia/v0.4/Immerse/src/display_gadfly.jl:444
 in panzoom_cb at /Users/bieler/.julia/v0.4/Immerse/src/display_gadfly.jl:467
 in panzoom_wrapper at /Users/bieler/.julia/v0.4/Immerse/src/display_gadfly.jl:225
 in anonymous at /Users/bieler/.julia/v0.4/Gtk/src/events.jl:2
 in g_sigatom at /Users/bieler/.julia/v0.4/Gtk/src/GLib/signals.jl:168
 in gtk_main at /Users/bieler/.julia/v0.4/Gtk/src/events.jl:1

I seems something is not initialized (or checked) correctly.

v0.4.1 on OS X

hide/show toolbar

Is there an easy way to hide/show the Immerse toolbar from a plot? Can the size be adjusted?

Strange backtrace and printing issues

See: JuliaLang/julia#13306 and JuliaLang/julia#13779.

Both of these issues are likely related to Immerse displays, but I'm not sure how. Here's some guesses:

  • Gtk is messing with the Julia global state (is there one??)
  • Errors are occuring in Gtk threads and printing isn't properly flushed out
  • There's a bug somewhere in base Julia when display methods are overridden (maybe some global state isn't set/unset properly?)

@timholy if you have any better guesses as to what it might be, post them here and I'll try to investigate.

Precompile failed on JuliaPro 0.5.2.2 Windows x64

julia> Pkg.add("Immerse")
INFO: Cloning cache of Docile from https://github.com/MichaelHatherly/Docile.jl.git
INFO: Cloning cache of GtkUtilities from https://github.com/timholy/GtkUtilities.jl.git
INFO: Cloning cache of Immerse from https://github.com/JuliaGraphics/Immerse.jl.git
INFO: Installing Docile v0.5.23
INFO: Installing GtkUtilities v0.1.0
INFO: Installing Immerse v0.0.13
INFO: Building WinRPM
INFO: Downloading https://cache.julialang.org/http://download.opensuse.org/repos
itories/windows:/mingw:/win32/openSUSE_Leap_42.2/repodata/repomd.xml
INFO: Downloading https://cache.julialang.org/http://download.opensuse.org/repos
itories/windows:/mingw:/win64/openSUSE_Leap_42.2/repodata/repomd.xml
INFO: Building Cairo
WARNING: BinDeps.shlib_ext is deprecated.
likely near C:\JuliaPro-0.5.2.2\pkgs-0.5.2.2\v0.5\Cairo\deps\build.jl:112
INFO: Updating WinRPM package list
INFO: Downloading https://cache.julialang.org/http://download.opensuse.org/repos
itories/windows:/mingw:/win32/openSUSE_Leap_42.2/repodata/repomd.xml
INFO: Downloading https://cache.julialang.org/http://download.opensuse.org/repos
itories/windows:/mingw:/win64/openSUSE_Leap_42.2/repodata/repomd.xml
INFO: Building Gtk
INFO: Nothing to do
INFO: Building Rmath
INFO: Package database updated

julia> using Immerse, Distributions
INFO: Precompiling module Immerse.
WARNING: @Gtk.GtkLabel is deprecated, use Gtk.GtkLabel instead.
in depwarn(::String, ::Symbol) at .\deprecated.jl:64
in @GtkLabel(::Expr, ::Vararg{Expr,N}) at C:\JuliaPro-0.5.2.2\pkgs-0.5.2.2\v0.5
\Gtk\src\GLib\gtype.jl:223
in include_from_node1(::String) at .\loading.jl:488 (repeats 2 times)
in macro expansion; at .\none:2 [inlined]
in anonymous at .<missing>:?
in eval(::Module, ::Any) at .\boot.jl:234
in process_options(::Base.JLOptions) at .\client.jl:242
in _start() at .\client.jl:321
while loading C:\JuliaPro-0.5.2.2\pkgs-0.5.2.2\v0.5\GtkUtilities\src\link.jl, in
expression starting on line 209
WARNING: @Gtk.GtkEntry is deprecated, use Gtk.GtkEntry instead.
in depwarn(::String, ::Symbol) at .\deprecated.jl:64
in @GtkEntry(::Expr, ::Vararg{Expr,N}) at C:\JuliaPro-0.5.2.2\pkgs-0.5.2.2\v0.5
\Gtk\src\GLib\gtype.jl:223
in include_from_node1(::String) at .\loading.jl:488 (repeats 2 times)
in macro expansion; at .\none:2 [inlined]
in anonymous at .<missing>:?
in eval(::Module, ::Any) at .\boot.jl:234
in process_options(::Base.JLOptions) at .\client.jl:242
in _start() at .\client.jl:321
while loading C:\JuliaPro-0.5.2.2\pkgs-0.5.2.2\v0.5\GtkUtilities\src\link.jl, in
expression starting on line 238
WARNING: @Gtk.GtkAdjustment is deprecated, use Gtk.GtkAdjustment instead.
in depwarn(::String, ::Symbol) at .\deprecated.jl:64
in @GtkAdjustment(::Expr, ::Vararg{Expr,N}) at C:\JuliaPro-0.5.2.2\pkgs-0.5.2.2
\v0.5\Gtk\src\GLib\gtype.jl:223
in include_from_node1(::String) at .\loading.jl:488 (repeats 2 times)
in macro expansion; at .\none:2 [inlined]
in anonymous at .<missing>:?
in eval(::Module, ::Any) at .\boot.jl:234
in process_options(::Base.JLOptions) at .\client.jl:242
in _start() at .\client.jl:321
while loading C:\JuliaPro-0.5.2.2\pkgs-0.5.2.2\v0.5\GtkUtilities\src\link.jl, in
expression starting on line 257
WARNING: @Gtk.GtkAdjustment is deprecated, use Gtk.GtkAdjustment instead.
in depwarn(::String, ::Symbol) at .\deprecated.jl:64
in @GtkAdjustment(::Expr, ::Vararg{Expr,N}) at C:\JuliaPro-0.5.2.2\pkgs-0.5.2.2
\v0.5\Gtk\src\GLib\gtype.jl:223
in include_from_node1(::String) at .\loading.jl:488 (repeats 2 times)
in macro expansion; at .\none:2 [inlined]
in anonymous at .<missing>:?
in eval(::Module, ::Any) at .\boot.jl:234
in process_options(::Base.JLOptions) at .\client.jl:242
in _start() at .\client.jl:321
while loading C:\JuliaPro-0.5.2.2\pkgs-0.5.2.2\v0.5\GtkUtilities\src\link.jl, in
expression starting on line 263
WARNING: @Gtk.GtkScale is deprecated, use Gtk.GtkScale instead.
in depwarn(::String, ::Symbol) at .\deprecated.jl:64
in @GtkScale(::Expr, ::Vararg{Expr,N}) at C:\JuliaPro-0.5.2.2\pkgs-0.5.2.2\v0.5
\Gtk\src\GLib\gtype.jl:223
in include_from_node1(::String) at .\loading.jl:488 (repeats 2 times)
in macro expansion; at .\none:2 [inlined]
in anonymous at .<missing>:?
in eval(::Module, ::Any) at .\boot.jl:234
in process_options(::Base.JLOptions) at .\client.jl:242
in _start() at .\client.jl:321
while loading C:\JuliaPro-0.5.2.2\pkgs-0.5.2.2\v0.5\GtkUtilities\src\link.jl, in
expression starting on line 268
ERROR: LoadError: LoadError: UndefVarError: absolute_native_units not defined
in include_from_node1(::String) at .\loading.jl:488 (repeats 2 times)
in macro expansion; at .\none:2 [inlined]
in anonymous at .<missing>:?
in eval(::Module, ::Any) at .\boot.jl:234
in process_options(::Base.JLOptions) at .\client.jl:242
in _start() at .\client.jl:321
while loading C:\JuliaPro-0.5.2.2\pkgs-0.5.2.2\v0.5\Immerse\src\compose.jl, in e
xpression starting on line 13
while loading C:\JuliaPro-0.5.2.2\pkgs-0.5.2.2\v0.5\Immerse\src\Immerse.jl, in e
xpression starting on line 31
ERROR: Failed to precompile Immerse to C:\Users\dell.julia\lib\v0.5\Immerse.ji.

in compilecache(::String) at .\loading.jl:593
in require(::Symbol) at .\loading.jl:422

Crash on Mac OS X 10.11.6

I'm having problems getting Immerse to work on my Mac. This is what I get:

➜  ~ julia
               _
   _       _ _(_)_     |  A fresh approach to technical computing
  (_)     | (_) (_)    |  Documentation: http://docs.julialang.org
   _ _   _| |_  __ _   |  Type "?help" for help.
  | | | | | | |/ _` |  |
  | | |_| | | | (_| |  |  Version 0.4.6 (2016-06-19 17:16 UTC)
 _/ |\__'_|_|_|\__'_|  |  Official http://julialang.org/ release
|__/                   |  x86_64-apple-darwin13.4.0

julia> using Immerse
WARNING: New definition
    +(AbstractArray{T<:Any, 2}, WoodburyMatrices.SymWoodbury) at /Users/roger/.julia/v0.4/WoodburyMatrices/src/SymWoodburyMatrices.jl:106
is ambiguous with:
    +(DataArrays.DataArray, AbstractArray) at /Users/roger/.julia/v0.4/DataArrays/src/operators.jl:276.
To fix, define
    +(DataArrays.DataArray{T<:Any, 2}, WoodburyMatrices.SymWoodbury)
before the new definition.
WARNING: New definition
    +(AbstractArray{T<:Any, 2}, WoodburyMatrices.SymWoodbury) at /Users/roger/.julia/v0.4/WoodburyMatrices/src/SymWoodburyMatrices.jl:106
is ambiguous with:
    +(DataArrays.AbstractDataArray, AbstractArray) at /Users/roger/.julia/v0.4/DataArrays/src/operators.jl:300.
To fix, define
    +(DataArrays.AbstractDataArray{T<:Any, 2}, WoodburyMatrices.SymWoodbury)
before the new definition.
2016-08-04 11:46:55.199 julia[72269:162920] *** WARNING: Method userSpaceScaleFactor in class NSView is deprecated on 10.7 and later. It should not be used in new applications. Use convertRectToBacking: instead.
WARNING: Method definition display(Base.REPL.REPLDisplay{R<:Base.REPL.AbstractREPL}, Base.Multimedia.MIME{:text/html}, Gadfly.Plot) in module Gadfly at /Users/roger/.julia/v0.4/Gadfly/src/Gadfly.jl:949 overwritten in module Immerse at /Users/roger/.julia/v0.4/Immerse/src/display_gadfly.jl:162.

julia> plot(x=rand(10), y=rand(10),Geom.point)
2016-08-04 11:48:14.812 julia[72269:162920] -[__NSCFType symbolicTraits]: unrecognized selector sent to instance 0x7fad1f0129f0
2016-08-04 11:48:14.821 julia[72269:162920] An uncaught exception was raised
2016-08-04 11:48:14.821 julia[72269:162920] -[__NSCFType symbolicTraits]: unrecognized selector sent to instance 0x7fad1f0129f0
2016-08-04 11:48:14.821 julia[72269:162920] (
    0   CoreFoundation                      0x00007fff94a0e4f2 __exceptionPreprocess + 178
    1   libobjc.A.dylib                     0x00007fff9a598f7e objc_exception_throw + 48
    2   CoreFoundation                      0x00007fff94a781ad -[NSObject(NSObject) doesNotRecognizeSelector:] + 205
    3   CoreFoundation                      0x00007fff9497e571 ___forwarding___ + 1009
    4   CoreFoundation                      0x00007fff9497e0f8 _CF_forwarding_prep_0 + 120
    5   UIFoundation                        0x00007fff8e6317c0 -[__NSFontTypefaceInfo _postscriptName] + 345
    6   UIFoundation                        0x00007fff8e630b23 +[__NSFontTypefaceInfo typefaceInfoForPostscriptName:options:] + 949
    7   UIFoundation                        0x00007fff8e63756f __NSGetMetaFontInstance + 983
    8   libgdk-3.0.dylib                    0x000000031716ebee _gdk_quartz_screen_get_setting + 392
    9   libgtk-3.dylib                      0x000000031950f6dd gtk_settings_get_property + 198
    10  libgobject-2.0.dylib                0x0000000316bcd0a5 g_object_get_valist + 270
    11  libgobject-2.0.dylib                0x0000000316bcd513 g_object_get + 177
    12  libgtk-3.dylib                      0x00000003193e49ee _gtk_css_font_size_get_default + 50
    13  libgtk-3.dylib                      0x00000003193e5923 gtk_css_value_font_size_compute + 211
    14  libgtk-3.dylib                      0x00000003193efde6 gtk_css_value_initial_compute + 218
    15  libgtk-3.dylib                      0x0000000319402488 gtk_css_static_style_compute_value + 106
    16  libgtk-3.dylib                      0x00000003193f0ed8 _gtk_css_lookup_resolve + 111
    17  libgtk-3.dylib                      0x0000000319402406 gtk_css_static_style_new_compute + 117
    18  libgtk-3.dylib                      0x000000031940236e gtk_css_static_style_get_default + 84
    19  libgtk-3.dylib                      0x00000003193f1a82 gtk_css_node_init + 23
    20  libgobject-2.0.dylib                0x0000000316bde771 g_type_create_instance + 621
    21  libgobject-2.0.dylib                0x0000000316bcc4e4 g_object_new_internal + 56
    22  libgobject-2.0.dylib                0x0000000316bcbf81 g_object_newv + 493
    23  libgobject-2.0.dylib                0x0000000316bcbd5d g_object_new + 193
    24  libgtk-3.dylib                      0x000000031940987a gtk_css_widget_node_new + 30
    25  libgtk-3.dylib                      0x00000003195ab7d7 gtk_widget_init + 240
    26  libgobject-2.0.dylib                0x0000000316bde771 g_type_create_instance + 621
    27  libgobject-2.0.dylib                0x0000000316bcc4e4 g_object_new_internal + 56
    28  libgobject-2.0.dylib                0x0000000316bcc3c9 g_object_new_valist + 998
    29  libgobject-2.0.dylib                0x0000000316bcbd4f g_object_new + 179
    30  ???                                 0x000000030cf1d41e 0x0 + 13102076958
    31  ???                                 0x000000030cf1d338 0x0 + 13102076728
    32  ???                                 0x000000030cf1d275 0x0 + 13102076533
    33  ???                                 0x000000030cf112c3 0x0 + 13102027459
    34  ???                                 0x000000030cf0a249 0x0 + 13101998665
    35  ???                                 0x000000030cf0742c 0x0 + 13101986860
    36  ???                                 0x000000030cf072b1 0x0 + 13101986481
    37  libjulia.dylib                      0x0000000108706cf6 jl_apply_generic + 422
    38  ???                                 0x000000030cefb14d 0x0 + 13101936973
    39  ???                                 0x000000030cefafe7 0x0 + 13101936615
    40  libjulia.dylib                      0x0000000108706c83 jl_apply_generic + 307
    41  ???                                 0x000000030cefa2f4 0x0 + 13101933300
    42  libjulia.dylib                      0x0000000108706cf6 jl_apply_generic + 422
    43  ???                                 0x000000030ceebd33 0x0 + 13101874483
    44  ???                                 0x000000030ceeb9e2 0x0 + 13101873634
    45  libjulia.dylib                      0x0000000108706c83 jl_apply_generic + 307
    46  ???                                 0x000000030ceeb936 0x0 + 13101873462
    47  ???                                 0x000000030ceeb7f2 0x0 + 13101873138
    48  libjulia.dylib                      0x0000000108706c83 jl_apply_generic + 307
    49  ???                                 0x000000030cebef51 0x0 + 13101690705
    50  sys.dylib                           0x0000000109c11027 julia_run_interface_18234 + 487
    51  sys.dylib                           0x0000000109c11090 jlcall_run_interface_18234 + 16
    52  libjulia.dylib                      0x0000000108706c83 jl_apply_generic + 307
    53  sys.dylib                           0x0000000109c1a3d1 julia_run_frontend_18517 + 609
    54  sys.dylib                           0x0000000109c19b51 julia_run_repl_18503 + 241
    55  libjulia.dylib                      0x0000000108706c83 jl_apply_generic + 307
    56  sys.dylib                           0x0000000109c2a4eb julia__start_18909 + 3563
    57  sys.dylib                           0x0000000109c2a7f9 jlcall__start_18909 + 9
    58  libjulia.dylib                      0x0000000108706c83 jl_apply_generic + 307
    59  julia                               0x00000001086ef684 true_main + 276
    60  julia                               0x00000001086ef556 main + 86
    61  julia                               0x00000001086ee8a4 start + 52
    62  ???                                 0x0000000000000001 0x0 + 1
)
2016-08-04 11:48:14.822 julia[72269:162920] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSCFType symbolicTraits]: unrecognized selector sent to instance 0x7fad1f0129f0'
*** First throw call stack:
(
    0   CoreFoundation                      0x00007fff94a0e4f2 __exceptionPreprocess + 178
    1   libobjc.A.dylib                     0x00007fff9a598f7e objc_exception_throw + 48
    2   CoreFoundation                      0x00007fff94a781ad -[NSObject(NSObject) doesNotRecognizeSelector:] + 205
    3   CoreFoundation                      0x00007fff9497e571 ___forwarding___ + 1009
    4   CoreFoundation                      0x00007fff9497e0f8 _CF_forwarding_prep_0 + 120
    5   UIFoundation                        0x00007fff8e6317c0 -[__NSFontTypefaceInfo _postscriptName] + 345
    6   UIFoundation                        0x00007fff8e630b23 +[__NSFontTypefaceInfo typefaceInfoForPostscriptName:options:] + 949
    7   UIFoundation                        0x00007fff8e63756f __NSGetMetaFontInstance + 983
    8   libgdk-3.0.dylib                    0x000000031716ebee _gdk_quartz_screen_get_setting + 392
    9   libgtk-3.dylib                      0x000000031950f6dd gtk_settings_get_property + 198
    10  libgobject-2.0.dylib                0x0000000316bcd0a5 g_object_get_valist + 270
    11  libgobject-2.0.dylib                0x0000000316bcd513 g_object_get + 177
    12  libgtk-3.dylib                      0x00000003193e49ee _gtk_css_font_size_get_default + 50
    13  libgtk-3.dylib                      0x00000003193e5923 gtk_css_value_font_size_compute + 211
    14  libgtk-3.dylib                      0x00000003193efde6 gtk_css_value_initial_compute + 218
    15  libgtk-3.dylib                      0x0000000319402488 gtk_css_static_style_compute_value + 106
    16  libgtk-3.dylib                      0x00000003193f0ed8 _gtk_css_lookup_resolve + 111
    17  libgtk-3.dylib                      0x0000000319402406 gtk_css_static_style_new_compute + 117
    18  libgtk-3.dylib                      0x000000031940236e gtk_css_static_style_get_default + 84
    19  libgtk-3.dylib                      0x00000003193f1a82 gtk_css_node_init + 23
    20  libgobject-2.0.dylib                0x0000000316bde771 g_type_create_instance + 621
    21  libgobject-2.0.dylib                0x0000000316bcc4e4 g_object_new_internal + 56
    22  libgobject-2.0.dylib                0x0000000316bcbf81 g_object_newv + 493
    23  libgobject-2.0.dylib                0x0000000316bcbd5d g_object_new + 193
    24  libgtk-3.dylib                      0x000000031940987a gtk_css_widget_node_new + 30
    25  libgtk-3.dylib                      0x00000003195ab7d7 gtk_widget_init + 240
    26  libgobject-2.0.dylib                0x0000000316bde771 g_type_create_instance + 621
    27  libgobject-2.0.dylib                0x0000000316bcc4e4 g_object_new_internal + 56
    28  libgobject-2.0.dylib                0x0000000316bcc3c9 g_object_new_valist + 998
    29  libgobject-2.0.dylib                0x0000000316bcbd4f g_object_new + 179
    30  ???                                 0x000000030cf1d41e 0x0 + 13102076958
    31  ???                                 0x000000030cf1d338 0x0 + 13102076728
    32  ???                                 0x000000030cf1d275 0x0 + 13102076533
    33  ???                                 0x000000030cf112c3 0x0 + 13102027459
    34  ???                                 0x000000030cf0a249 0x0 + 13101998665
    35  ???                                 0x000000030cf0742c 0x0 + 13101986860
    36  ???                                 0x000000030cf072b1 0x0 + 13101986481
    37  libjulia.dylib                      0x0000000108706cf6 jl_apply_generic + 422
    38  ???                                 0x000000030cefb14d 0x0 + 13101936973
    39  ???                                 0x000000030cefafe7 0x0 + 13101936615
    40  libjulia.dylib                      0x0000000108706c83 jl_apply_generic + 307
    41  ???                                 0x000000030cefa2f4 0x0 + 13101933300
    42  libjulia.dylib                      0x0000000108706cf6 jl_apply_generic + 422
    43  ???                                 0x000000030ceebd33 0x0 + 13101874483
    44  ???                                 0x000000030ceeb9e2 0x0 + 13101873634
    45  libjulia.dylib                      0x0000000108706c83 jl_apply_generic + 307
    46  ???                                 0x000000030ceeb936 0x0 + 13101873462
    47  ???                                 0x000000030ceeb7f2 0x0 + 13101873138
    48  libjulia.dylib                      0x0000000108706c83 jl_apply_generic + 307
    49  ???                                 0x000000030cebef51 0x0 + 13101690705
    50  sys.dylib                           0x0000000109c11027 julia_run_interface_18234 + 487
    51  sys.dylib                           0x0000000109c11090 jlcall_run_interface_18234 + 16
    52  libjulia.dylib                      0x0000000108706c83 jl_apply_generic + 307
    53  sys.dylib                           0x0000000109c1a3d1 julia_run_frontend_18517 + 609
    54  sys.dylib                           0x0000000109c19b51 julia_run_repl_18503 + 241
    55  libjulia.dylib                      0x0000000108706c83 jl_apply_generic + 307
    56  sys.dylib                           0x0000000109c2a4eb julia__start_18909 + 3563
    57  sys.dylib                           0x0000000109c2a7f9 jlcall__start_18909 + 9
    58  libjulia.dylib                      0x0000000108706c83 jl_apply_generic + 307
    59  julia                               0x00000001086ef684 true_main + 276
    60  julia                               0x00000001086ef556 main + 86
    61  julia                               0x00000001086ee8a4 start + 52
    62  ???                                 0x0000000000000001 0x0 + 1
)
libc++abi.dylib: terminating with uncaught exception of type NSException

signal (6): Abort trap: 6
__pthread_kill at /usr/lib/system/libsystem_kernel.dylib (unknown line)
[1]    72269 abort      julia

Versioninfo and Pkg.status():

julia> versioninfo()
Julia Version 0.4.6
Commit 2e358ce (2016-06-19 17:16 UTC)
Platform Info:
  System: Darwin (x86_64-apple-darwin13.4.0)
  CPU: Intel(R) Core(TM) i5-5257U CPU @ 2.70GHz
  WORD_SIZE: 64
  BLAS: libopenblas (USE64BITINT DYNAMIC_ARCH NO_AFFINITY Haswell)
  LAPACK: libopenblas64_
  LIBM: libopenlibm
  LLVM: libLLVM-3.3
julia> Pkg.status()
WARNING: unknown GLM commit dc0dcebc, metadata may be ahead of package cache
WARNING: unknown GLM commit bd1a03a2, metadata may be ahead of package cache
WARNING: unknown GLM commit a772ce48, metadata may be ahead of package cache
WARNING: unknown GLM commit 9a734eb3, metadata may be ahead of package cache
WARNING: unknown PlotUtils commit 681b291a, metadata may be ahead of package cache
WARNING: unknown PlotUtils commit e2f421de, metadata may be ahead of package cache
WARNING: unknown PlotUtils commit ada3c997, metadata may be ahead of package cache
WARNING: unknown PlotUtils commit c8d84fe3, metadata may be ahead of package cache
34 required packages:
 - ArgParse                      0.3.1
 - Atom                          0.4.2+             julia-0.4
 - Compose                       0.4.2+             roger (dirty)
 - DSP                           0.0.11
 - DataFramesMeta                0.1.3
 - Distances                     0.3.2
 - FastAnonymous                 0.3.2
 - Fontconfig                    0.0.2
 - GLM                           0.5.0+             vonmises (dirty)
 - GLVisualize                   0.0.10
 - GR                            0.14.0
 - Gadfly                        0.4.2+             roger (dirty)
 - Gtk                           0.10.1
 - Julia                        1.1.10
 - Images                        0.5.7
 - Immerse                       0.0.11
 - JLD                           0.6.3
 - KernelEstimator               0.1.7
 - LARS                          0.0.3
 - LibGit2                       0.3.8
 - Lint                          0.2.4
 - MAT                           0.2.14
 - MATLAB                        0.2.4+             master
 - MultivariateStats             0.3.0
 - ODE                           0.2.1+             master
 - ProfileView                   0.1.3
 - ProgressMeter                 0.3.2
 - PyPlot                        2.2.0
 - QuartzImageIO                 0.1.2
 - Datasets                     0.1.3
 - Requests                      0.3.9
 - TerminalExtensions            0.0.3
 - VennEuler                     0.0.1+             master
 - Winston                       0.10.2+            roger (dirty)
118 additional packages:
 - ArrayViews                    0.6.4
 - BinDeps                       0.4.2
 - Blink                         0.3.4
 - Blosc                         0.1.6
 - BufferedStreams               0.1.6
 - Cairo                         0.2.33
 - Calculus                      0.1.15
 - CodeTools                     0.3.0+             master
 - Codecs                        0.1.5
 - ColorTypes                    0.2.5
 - ColorVectorSpace              0.1.5
 - Colors                        0.6.6
 - Compat                        0.8.6
 - Conda                         0.2.2
 - Connectivity                  0.0.0-             devel (unregistered, dirty)
 - Contour                       0.1.0
 - Cubature                      1.2.0
 - DataArrays                    0.3.8
 - DataFrames                    0.7.6
 - DataStructures                0.4.5
 - Dates                         0.4.4
 - Debug                         0.1.6
 - Decoding                      0.0.0-             master (unregistered, dirty)
 - DirectedInformation           0.0.0-             master (unregistered, dirty)
 - DirectionalRegression         0.0.0-             master (unregistered)
 - Distributions                 0.8.10             77eea93c (dirty)
 - Docile                        0.5.23
 - DualNumbers                   0.2.2
 - Entropies                     0.0.0-             master (unregistered, dirty)
 - Eyelink                       0.0.0-             d310a385 (unregistered)
 - FactCheck                     0.4.3
 - FileIO                        0.1.0
 - FixedPointNumbers             0.1.4
 - FixedSizeArrays               0.2.2
 - ForwardDiff                   0.2.2
 - FreeType                      1.0.3
 - GLAbstraction                 0.1.0
 - GLFW                          1.1.3
 - GLWindow                      0.1.4
 - GUICheck                      0.0.0-             master (unregistered)
 - Gzip                          0.2.19
 - GeometryTypes                 0.1.6
 - Graphics                      0.1.3
 - Grid                          0.4.1
 - GtkInteract                   0.0.0-             master (unregistered)
 - GtkUtilities                  0.0.9
 - HDF5                          0.6.4
 - Hexagons                      0.0.4
 - Hiccup                        0.0.3
 - Homebrew                      0.3.3              master
 - HttpCommon                    0.2.6
 - HttpParser                    0.1.1
 - HttpServer                    0.1.5
 - HypothesisTests               0.2.10+            roger
 - IniFile                       0.2.5
 - Interact                      0.3.1+             master
 - Iterators                     0.1.9
 - JSON                          0.6.0
 - JuliaParser                   0.6.4
 - KernelDensity                 0.1.2
 - LNR                           0.0.2
 - LaTeXStrings                  0.2.0
 - Lazy                          0.10.1
 - LegacyStrings                 0.1.1
 - Libz                          0.2.0
 - Loess                         0.0.6
 - MacroTools                    0.3.0
 - MathProgBase                  0.5.1
 - MbedTLS                       0.2.5
 - Measures                      0.0.3
 - Media                         0.1.2
 - MeshIO                        0.0.5
 - ModernGL                      0.0.8
 - Mustache                      0.0.15
 - Mux                           0.2.0
 - NLopt                         0.3.2
 - NaNMath                       0.2.1
 - Nettle                        0.2.3
 - Optim                         0.5.0
 - PDMats                        0.4.2
 - Packing                       0.0.4
 - PeakFinder                    0.0.0-             master (unregistered, dirty)
 - PeriStimulusTimeHistograms    0.0.0-             master (unregistered)
 - PlotUtils                     0.0.0-             master
 - Polynomials                   0.0.5
 - PositiveFactorizations        0.0.2
 - Primes                        0.1.1
 - PyCall                        1.7.0
 - Quaternions                   0.1.1
 - Reactive                      0.3.4
 - Reexport                      0.0.3
 - RenyiEntropyEstimator         0.0.0-             master (unregistered, dirty)
 - Requires                      0.2.2
 - ResponseLatency               0.0.0-             master (unregistered)
 - RobustRegression              0.0.0-             master (unregistered)
 - Roots                         0.2.0
 - SHA                           0.2.0
 - SIUnits                       0.0.6
 - SaccadeAnalysis               0.0.0-             master (unregistered, dirty)
 - ShiftData                     0.0.0-             master (unregistered)
 - Showoff                       0.0.7
 - SignedDistanceFields          0.0.1
 - SortingAlgorithms             0.1.0
 - Spiketrains                   0.0.0-             master (unregistered, dirty)
 - StatUtils                     0.0.0-             master (unregistered)
 - StatsBase                     0.8.3
 - StatsFuns                     0.2.2
 - Stimulus                      0.0.0-             jv0.4 (unregistered, dirty)
 - TexExtensions                 0.0.3
 - TextWrap                      0.1.6
 - Tk                            0.3.8
 - URIParser                     0.1.5
 - VennDiagrams                  0.0.0-             roger (unregistered, dirty)
 - WebSockets                    0.1.2
 - WoodburyMatrices              0.2.0
 - Yeppp                         0.0.10
 - ZMQ                           0.3.2
 - Zlib                          0.1.12

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.