Plotting packages that support Julia v1.0

Is there a list of Plot packages that are confirmed as working with Julia 1.0? I’ve seen Gadfly isn’t there yet, which is unfortunate as I wanted to start learning Julia through using that one.

Plots, GR, PyPlot, PgfPlotsX definitely work. PlotlyJS and Makie are very close. (Edit: removed VegaLite which isn’t ready).

2 Likes

I think VegaLite is not quite ready yet, at least for me latest tag and master throw errors upon precompiling on 1.0.

Oh, sorry, I don’t use that myself I just thought I read that.

GMT.jl is also a plotting package and works on v0.7

As mentioned elsewhere on Discourse (List of working packages on v. 1.0), it would be nice if this sort of info was right there on the entry page for Julia lang.

2 Likes

When I try to use GR I get:

(v1.0) pkg> build GR
  Building GR → `~/.julia/packages/GR/rnUaj/deps/build.log`
┌ Error: Error building `GR`: 
│ ERROR: LoadError: ArgumentError: Package Pkg not found in current path:
│ - Run `Pkg.add("Pkg")` to install the Pkg package.
│ 
│ Stacktrace:
│  [1] require(::Module, ::Symbol) at ./loading.jl:817
│  [2] include at ./boot.jl:317 [inlined]
│  [3] include_relative(::Module, ::String) at ./loading.jl:1038
│  [4] include at ./sysimg.jl:29 [inlined]
│  [5] include_ifexists at ./client.jl:191 [inlined]
│  [6] load_julia_startup() at ./client.jl:288
│  [7] exec_options(::Base.JLOptions) at ./logging.jl:312
│  [8] _start() at ./client.jl:421
│ in expression starting at /home/js/.julia/config/startup.jl:1
└ @ Pkg.Operations /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.0/Pkg/src/Operations.jl:1068

and when I just use Plots:

julia> using Plots

julia> plot( cumsum(rand(10)))
ERROR: error compiling _plot!: error compiling _display: could not load library "libGR.so"
libGR.so: cannot open shared object file: No such file or directory
Stacktrace:
 [1] #plot#136(::Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}}, ::Function, ::Array{Float64,1}) at /home/js/.julia/packages/Plots/ex9On/src/plot.jl:57
 [2] plot(::Array{Float64,1}) at /home/js/.julia/packages/Plots/ex9On/src/plot.jl:51
 [3] top-level scope at none:0

The Plots issue you see is because your GR wasn’t built. That GR looks quite strange, though. Could you try ENV["GRDIR"]="";Pkg.build("GR") after updating your packages to the newest version?

Result:

  Building GR → `~/.julia/packages/GR/Oatug/deps/build.log`
┌ Error: Error building `GR`: 
│ ERROR: LoadError: ArgumentError: Package Pkg not found in current path:
│ - Run `Pkg.add("Pkg")` to install the Pkg package.
│ 
│ Stacktrace:
│  [1] require(::Module, ::Symbol) at ./loading.jl:817
│  [2] include at ./boot.jl:317 [inlined]
│  [3] include_relative(::Module, ::String) at ./loading.jl:1038
│  [4] include at ./sysimg.jl:29 [inlined]
│  [5] include_ifexists at ./client.jl:191 [inlined]
│  [6] load_julia_startup() at ./client.jl:288
│  [7] exec_options(::Base.JLOptions) at ./logging.jl:312
│  [8] _start() at ./client.jl:421
│ in expression starting at /home/js/.julia/config/startup.jl:1
└ @ Pkg.Operations /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.0/Pkg/src/Operations.jl:1068

Your best bet is to open an issue on GR (provided your other packages are building - it looks almost like your whole julia install is having trouble). It works perfectly on my 1.0

Maybe I a will file a bug. I could successfully build CSVFiles as a test.

I also tried

Version 1.1.0-DEV.72 (2018-08-20)

with the same result.

It works well in 0.6.4 though.
Thanks for your attention.

cc @jheinen

btw: Looks like Gadfly/Compose is approaching 1.0 soon:


1 Like

You have to temporarily disable/remove your startup file. This is not a problem of GR. There were other users having the same problem (with other packages), too.

@mkborregaard

1 Like

Thanks. That helped.

But after Pkg.up GR was updated. Pkg.build (after a few tries) did not result in errors but:

julia> using Plots

julia> plot( cumsum(rand(10)))
ERROR: error compiling _plot!: error compiling _display: could not load library "libGR.so"
libGR.so: cannot open shared object file: No such file or directory
Stacktrace:
 [1] #plot#136(::Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}}, ::Function, ::Array{Float64,1}) at /home/js/.julia/packages/Plots/ex9On/src/plot.jl:57
 [2] plot(::Array{Float64,1}) at /home/js/.julia/packages/Plots/ex9On/src/plot.jl:51
 [3] top-level scope at none:0

Regards
Johann

:heart:

Please download the latest run-time (for your platform) using

ENV["GRDIR"] = ""
Pkg.build("GR")

I still have no idea, why the latter is required on some system - there were several users complaining about that, but the above step should fix the problem …

Sorry, this is from a binary newly unpacked from the tar.gz I downloaded from julialang.org:

  _       _ _(_)_     |  Documentation: https://docs.julialang.org
  (_)     | (_) (_)    |
   _ _   _| |_  __ _   |  Type "?" for help, "]?" for Pkg help.
  | | | | | | |/ _` |  |
  | | |_| | | | (_| |  |  Version 1.0.0 (2018-08-08)
 _/ |\__'_|_|_|\__'_|  |  Official https://julialang.org/ release
|__/                   |

julia> ENV["GRDIR"] = ""
""
julia> using Pkg

julia> Pkg.build("GR")
  Building GR → `~/.julia/packages/GR/5E5fX/deps/build.log`
┌ Error: Error building `GR`: 
│ ERROR: LoadError: failed process: Process(`grep ^ID_LIKE=`, ProcessExited(1)) [1]
│ Stacktrace:
│  [1] error(::String, ::Base.Process, ::String, ::Int64, ::String) at ./error.jl:42
│  [2] pipeline_error at ./process.jl:695 [inlined]
│  [3] pipeline_error(::Base.ProcessChain) at ./process.jl:708
│  [4] read(::Base.OrCmds) at ./process.jl:631
│  [5] get_os_release(::String) at /home/js/.julia/packages/GR/5E5fX/deps/build.jl:37
│  [6] top-level scope at /home/js/.julia/packages/GR/5E5fX/deps/build.jl:60
│  [7] include at ./boot.jl:317 [inlined]
│  [8] include_relative(::Module, ::String) at ./loading.jl:1038
│  [9] include(::Module, ::String) at ./sysimg.jl:29
│  [10] include(::String) at ./client.jl:388
│  [11] top-level scope at none:0
│ in expression starting at /home/js/.julia/packages/GR/5E5fX/deps/build.jl:45
└ @ Pkg.Operations /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.0/Pkg/src/Operations.jl:1068

It is not urgent for me, but might be worth while for the developers taking note of it.

Regards
Johann

Thanks for the hint. I added a check for missing keys in /etc/os-release. The problem should no longer exist.

VegaLite.jl should now work.

2 Likes