queryverse / VegaLite.jl

Julia bindings to Vega-Lite
Other
268 stars 39 forks source link

Plotting inside JupyterLab fails #113

Closed asbisen closed 6 years ago

asbisen commented 6 years ago

I am unable to render plots on JupyterLab. I am using julia-0.6.3 and the latest tagged release of VegaLite.jl inside a docker container. Upon executing simplest of code snippet I see that the julia-binary takes up one whole CPU forever and never returns.. no error/no output

Wondering if somebody else have noticed similar behavior? I don't see any errors on Jupyter log's.

vegalite jl console
asbisen commented 6 years ago

Some more data points, when I try just to plot to a file I do get an error.


julia> data |> @vlplot(:bar, x=:a, y=:b) |> save("myplot.pdf")
ERROR: FileIO.File{FileIO.DataFormat{:UNKNOWN}}("/home/abisen/myplot.pdf") couldn't be recognized by FileIO.

Stacktrace:
 [1] #save#30 at /opt/julia/v0.6/FileIO/src/loadsave.jl:194 [inlined]
 [2] save(::FileIO.File{FileIO.DataFormat{:UNKNOWN}}, ::VegaLite.VLSpec{:plot}) at /opt/julia/v0.6/FileIO/src/loadsave.jl:194
 [3] #save#15(::Array{Any,1}, ::Function, ::String, ::VegaLite.VLSpec{:plot}, ::Vararg{VegaLite.VLSpec{:plot},N} where N) at /opt/julia/v0.6/FileIO/src/loadsave.jl:113
 [4] (::FileIO.##19#20{Array{Any,1},String})(::VegaLite.VLSpec{:plot}) at /opt/julia/v0.6/FileIO/src/loadsave.jl:119
 [5] |>(::VegaLite.VLSpec{:plot}, ::FileIO.##19#20{Array{Any,1},String}) at ./operators.jl:862
vl
davidanthoff commented 6 years ago

That should definitely just work. Can you post the output of Pkg.status()?

asbisen commented 6 years ago

Here's the output of Pkg.status()

julia> Pkg.status()
29 required packages:
 - Blink                         0.6.2
 - CSV                           0.2.5
 - Clustering                    0.9.1
 - Combinatorics                 0.6.0
 - DataFrames                    0.11.6
 - Distributions                 0.15.0
 - Flux                          0.5.3
 - Formatting                    0.3.2
 - GLM                           0.11.0
 - GR                            0.31.0
 - Gadfly                        0.7.0
 - IJulia                        1.8.0
 - IterTools                     0.2.1
 - JuMP                          0.18.2
 - JuliaDB                       0.8.4
 - LearningStrategies            0.3.0
 - MLDataUtils                   0.3.0
 - MLDatasets                    0.1.0
 - Optim                         0.15.2
 - PlotThemes                    0.2.0
 - PlotlyJS                      0.10.2
 - Plots                         0.17.3
 - PyCall                        1.17.1
 - PyPlot                        2.5.0
 - SQLite                        0.5.0
 - ScikitLearn                   0.4.0
 - StatPlots                     0.7.2
 - TensorFlow                    0.9.1
 - VegaLite                      0.3.3
141 additional packages:
 - AbstractFFTs                  0.3.2
 - AbstractTrees                 0.1.0
 - Adapt                         0.2.0
 - AssetRegistry                 0.0.2
 - AutoHashEquals                0.2.0
 - AxisAlgorithms                0.2.0
 - BinDeps                       0.8.8
 - BinaryProvider                0.3.3
 - Blosc                         0.5.0
 - BufferedStreams               0.4.0
 - CMakeWrapper                  0.1.0
 - Cairo                         0.5.2
 - Calculus                      0.4.0
 - CategoricalArrays             0.3.10
 - CodecZlib                     0.4.3
 - ColorTypes                    0.6.7
 - Colors                        0.8.2
 - CommonSubexpressions          0.1.0
 - Compat                        0.69.0
 - Compose                       0.6.0
 - Conda                         0.8.1
 - Contour                       0.4.0
 - CoupledFields                 0.0.1
 - Dagger                        0.6.1
 - DataArrays                    0.7.0
 - DataDeps                      0.3.5
 - DataFlow                      0.3.1
 - DataStreams                   0.3.6
 - DataStructures                0.8.4
 - DataValues                    0.3.3
 - DiffEqDiffTools               0.4.1
 - DiffResults                   0.0.3
 - DiffRules                     0.0.6
 - Distances                     0.6.0
 - DocStringExtensions           0.4.5
 - DualNumbers                   0.4.0
 - FFTW                          0.0.4
 - FileIO                        0.9.1
 - FilePaths                     0.6.0
 - FilePathsBase                 0.1.0
 - FixedPointNumbers             0.4.6
 - ForwardDiff                   0.7.5
 - GZip                          0.4.0
 - Glob                          1.1.1
 - Graphics                      0.3.0
 - HDF5                          0.9.3
 - HTTP                          0.6.12
 - Hexagons                      0.1.0
 - Hiccup                        0.1.1
 - HttpCommon                    0.4.0
 - HttpParser                    0.4.0
 - HttpServer                    0.3.1
 - ImageCore                     0.6.0
 - Impute                        0.0.0-             master (unregistered)
 - IndexedTables                 0.7.3
 - IndirectArrays                0.4.2
 - IniFile                       0.4.0
 - InternedStrings               0.6.2
 - Interpolations                0.7.3
 - IterableTables                0.7.1
 - IteratorInterfaceExtensions   0.0.2
 - Iterators                     0.3.1
 - JLD                           0.8.3
 - JSON                          0.17.2
 - Juno                          0.4.1
 - KernelDensity                 0.4.1
 - LaTeXStrings                  1.0.0
 - Lazy                          0.12.1
 - LearnBase                     0.1.6
 - LegacyStrings                 0.3.0
 - Libz                          0.2.4
 - LineSearches                  6.0.2
 - Loess                         0.3.0
 - Logging                       0.3.1
 - LossFunctions                 0.2.0
 - MAT                           0.4.0
 - MLDataPattern                 0.4.0
 - MLLabelUtils                  0.3.0
 - MNIST                         0.0.2
 - MacroTools                    0.4.2
 - MappedArrays                  0.0.7
 - MathProgBase                  0.7.1
 - MbedTLS                       0.5.11
 - Measures                      0.2.0
 - Media                         0.3.0
 - MemPool                       0.0.11
 - Missings                      0.2.10
 - Mustache                      0.3.3
 - Mux                           0.3.0
 - NLSolversBase                 6.1.1
 - NNlib                         0.3.1
 - NaNMath                       0.3.1
 - NamedTuples                   4.0.2
 - NearestNeighbors              0.3.0
 - NodeJS                        0.4.0
 - Nullables                     0.0.6
 - OffsetArrays                  0.6.0
 - OnlineStats                   0.18.0
 - OnlineStatsBase               0.8.0
 - PDMats                        0.8.0
 - PaddedViews                   0.3.0
 - Parameters                    0.9.0
 - PenaltyFunctions              0.0.2
 - Pidfile                       1.0.0
 - PlotUtils                     0.4.4
 - PlotlyBase                    0.1.2
 - Polynomials                   0.4.0
 - PooledArrays                  0.2.2
 - PositiveFactorizations        0.1.0
 - ProtoBuf                      0.5.0
 - QuadGK                        0.3.0
 - Ratios                        0.2.0
 - RecipesBase                   0.3.1
 - Reexport                      0.1.0
 - Requires                      0.4.4
 - ReverseDiffSparse             0.8.1
 - Rmath                         0.4.0
 - Rsvg                          0.2.1
 - SHA                           0.5.7
 - ScikitLearnBase               0.3.0
 - ShowItLikeYouBuildIt          0.2.0
 - Showoff                       0.2.0
 - SortingAlgorithms             0.2.1
 - SpecialFunctions              0.6.0
 - StaticArrays                  0.7.2
 - StatsBase                     0.23.1
 - StatsFuns                     0.6.1
 - StatsModels                   0.2.6
 - SweepOperator                 0.1.0
 - TableTraits                   0.2.0
 - TableTraitsUtils              0.1.3
 - TakingBroadcastSeriously      0.1.1
 - TextParse                     0.5.0
 - TranscodingStreams            0.5.2
 - URIParser                     0.3.1
 - VersionParsing                1.1.1
 - WeakRefStrings                0.4.7
 - WebSockets                    0.5.0
 - WoodburyMatrices              0.3.0
 - ZMQ                           0.6.2
 - ZipFile                       0.5.0
asbisen commented 6 years ago

The issue was due to conflicts between the system provided packages pango, pangocairo and the ones that was being compiled by Cairo.jl.

I believe the reason was, that build process checked for existence of gettext at the system level and once it didn't find gettext it built all other libraries inside ~/.julia/.

A simple yum install gettext followed by

Pkg.rm("VegaLite")
Pkg.rm("Cairo")
rm -rf ~/.julia/v0.6/.cache/Cairo
rm -rf ~/.julia/v0.6/Cairo
Pkg.add("VegaLite")

solved the issue :) Thanks for the help, and apologize for your wasted time.

davidanthoff commented 6 years ago

Ah, interesting... The Cairo.jl build seems generally quite brittle, I hope that some brave person will port that to BinaryProvider.jl at some point, which should make this kind of stuff much more stable.