[ANN] Makie v.0.13

Very impressive and exciting possibilities. Let me ask about this.
Imagine that instead of a surface we had a point cloud. Would it be possible to draw a polygon that encloses the ellipses and mark those points somehow (visually they would change color). And after that export the point cloud with those points flagged?

(Basically, I’m asking if one can do multi-beam bathymetry data cleaning)

Thanks

1 Like

Hmm, probably? It would be a lot of work though.

  1. Set up some hotkey to trace mousepositions. That’s possible via fig.scene.events.mousebutton and fig.scene.events.mouseposition.
  2. Convert the traced path to a polygon. Might be helpful to check out the poly recipe code in Makie

From that point you have two options. The easier way would be to use the inbuilt point picking, i.e. pick(scene::SceneLike, rect::IRect2D) and filter all the points inside the polygon you’ve drawn. This will only capture visible points though. The other option is to do point in polygon for each point in 3d. You can probably reuse the ray casting from lines to extrude and project each point of the polygon. I don’t think GeometryBasics has a point in mesh, maybe Meshes has it, if not you’d have to implement it as well.

1 Like

Thanks for the pointers but meanwhile why doesn’t this plot a scatter points plot?

f = Figure(resolution = (1200, 800), fontsize = 14)
ax = Axis3(f[fldmod1(1, 2)...], aspect = (1,1,1));
GLMakie.scatter!(rand(10), rand(10), rand(10))

Would you mind say something about “AlgebraOfGraphics”? I noticed there is a package called AlgebraOfGraphics.jl. Thanks.

2 Likes
2 Likes

Is it possible that GLMakie does not export DataInspector on its own, and that one needs to run using Makie to import the type?

julia> using GLMakie

julia> DataInspector
ERROR: UndefVarError: DataInspector not defined

julia> using Makie

julia> DataInspector
DataInspector
All relevant version-info:
(@v1.6) pkg> status
      Status `C:\Users\densb\.julia\environments\v1.6\Project.toml`
  [336ed68f] CSV v0.8.5
  [13f3f980] CairoMakie v0.5.1
  [39db22c5] ClipData v0.1.0
  [5ae59095] Colors v0.12.8
  [a6e380b2] ControlSystems v0.9.2
  [717857b8] DSP v0.6.10
  [a93c6f00] DataFrames v1.1.1
  [7a1cc6ca] FFTW v1.4.1
  [5789e2e9] FileIO v1.9.0
  [e9467ef8] GLMakie v0.2.7
  [916415d5] Images v0.24.1
  [d0351b0e] InspectDR v0.4.0
  [a98d9a8b] Interpolations v0.13.2
  [b964fa9f] LaTeXStrings v1.2.1
  [23fbe1c1] Latexify v0.15.5
  [2fda8390] LsqFit v0.12.0
  [23992714] MAT v0.10.1
  [ee78f7c6] Makie v0.13.1
  [eff96d63] Measurements v2.6.0
  [9b87118b] PackageCompiler v1.2.5
  [18e31ff7] Peaks v0.3.0
  [f0f68f2c] PlotlyJS v0.14.1
  [91a5bcdd] Plots v1.15.2
  [c3e4b0f8] Pluto v0.14.5
  [7f904dfe] PlutoUI v0.7.1
  [f27b6e38] Polynomials v1.2.1
  [08abe8d2] PrettyTables v1.0.1
  [d330b81b] PyPlot v2.9.0
  [3cdcf5f2] RecipesBase v1.1.1
  [295af30f] Revise v3.1.16
  [2913bbd2] StatsBase v0.33.8
  [0c5d862f] Symbolics v0.1.25
  [bd369af6] Tables v1.4.2
  [592b5752] Trapz v2.0.2
  [02ec7d09] Ueauty v0.1.0
  [1986cc42] Unitful v1.7.0
  [42071c24] UnitfulRecipes v1.2.0
  [8149f6b0] WAV v1.1.0
  [276b4fcb] WGLMakie v0.3.5
  [fdbf4ff8] XLSX v0.7.6

julia> versioninfo()
Julia Version 1.6.1
Commit 6aaedecc44 (2021-04-23 05:59 UTC)
Platform Info:
  OS: Windows (x86_64-w64-mingw32)
  CPU: Intel(R) Core(TM) i5-8265U CPU @ 1.60GHz
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-11.0.1 (ORCJIT, skylake)

You’re behind on GLMakie. 0.3.0 is the latest version.

1 Like

That seems to be an issue with Axis3… Doing the same with LScene works fine.

It’s an issue with scatter I think, exacerbated by the way that Axis3’s camera matrices are set up

Can we please get keyword arguments in convert_arguments so that type recipes like DifferentialEquations.jl’s can be converted to Makie?

13 Likes

After updating GLMakie specifically, I seem to still have the wrong version. I don’t understand why. I really don’t expect personal IT support, and I am sure that it will be fine in some time, after things update.

Thanks you so much for your work, especially in the data-interaction department! It has been a large anticipation for me personally.

Output from trying to update, and checking version ```julia (@v1.6) pkg> update GLMakie; status GLMakie Updating registry at `C:\Users\densb\.julia\registries\General` Updating git-repo `https://github.com/JuliaRegistries/General.git` No Changes to `C:\Users\densb\.julia\environments\v1.6\Project.toml` Updating `C:\Users\densb\.julia\environments\v1.6\Manifest.toml` [b4f34e82] ↑ Distances v0.9.2 ⇒ v0.10.3 [31c24e10] ↑ Distributions v0.23.11 ⇒ v0.24.18 [1a297f60] ↑ FillArrays v0.9.7 ⇒ v0.11.7 [cd3eb016] ↑ HTTP v0.8.19 ⇒ v0.9.8 [82e4d734] ↑ ImageIO v0.4.1 ⇒ v0.5.4 [90014a1f] ↑ PDMats v0.10.1 ⇒ v0.11.0 [eebad327] + PkgVersion v0.1.1 [a03496cd] ↑ PlotlyBase v0.5.0 ⇒ v0.5.3 [92933f4c] + ProgressMeter v1.6.2 [276daf66] ↑ SpecialFunctions v0.10.3 ⇒ v1.4.1 [731e570b] + TiffImages v0.3.2 [5c2747f8] + URIs v1.3.0 [f7e6163d] + Kaleido_jll v0.1.0+0 Precompiling project... 37 dependencies successfully precompiled in 204 seconds (315 already precompiled) Status `C:\Users\densb\.julia\environments\v1.6\Project.toml` [e9467ef8] GLMakie v0.2.7 ```
1 Like

do ]add GLMakie@0.3 and see what holds it back

2 Likes

" Add one or more of the Makie backend packages GLMakie.jl (OpenGL), CairoMakie.jl (Cairo), or WGLMakie.jl (WebGL)." (From the documentation)

I still find it a bit confusing… I find the Plots way that you install the main package, and it brings with it a default backend (and then you can install others) a more intuitive way than installing a backend in order to install the main plotting package…

5 Likes

I prefer the Makie way personally. I just install the backend I want instead of getting another backend installed accidentally like with Plots.jl.

5 Likes

PlotlyJS was the culprit. Thanks :slight_smile:

Makie is a fantastic package for plotting , I would like to congratulate the team. I have no doubt that Makie will soon replace plots. :grinning: :grinning: :grinning: :grinning:

But when I upgraded from v0.13.7 to v0.13.8 it crashed with the following error by using Windows 10 :cry: :cry:

ERROR: LoadError: MethodError: no method matching backend_show(::Missing, ::IOContext{IOStream}, ::MIME{Symbol("image/svg+xml")}, ::Makie.Scene)
Closest candidates are:
  backend_show(::Any, ::IO, ::MIME{Symbol("text/plain")}, ::Makie.Scene) at C:\Users\pollaccoj\.julia\packages\Makie\ZK3qM\src\display.jl:89
Stacktrace:
  [1] show(io::IOContext{IOStream}, m::MIME{Symbol("image/svg+xml")}, scene::Makie.Scene)
    @ Makie C:\Users\pollaccoj\.julia\packages\Makie\ZK3qM\src\display.jl:118
  [2] (::Makie.var"#900#901"{Float64, Float64, DataType, Makie.Scene})(s::IOStream)
    @ Makie C:\Users\pollaccoj\.julia\packages\Makie\ZK3qM\src\display.jl:249
  [3] open(::Makie.var"#900#901"{Float64, Float64, DataType, Makie.Scene}, ::String, ::Vararg{String, N} where N; kwargs::Base.Iterators.Pairs{Union{}, Union{}, Tuple{}, NamedTuple{(), Tuple{}}})
    @ Base .\io.jl:330
  [4] open
    @ .\io.jl:328 [inlined]
  [5] save(file::FileIO.File{FileIO.DataFormat{:SVG}, String}, fig::Makie.Figure; resolution::Tuple{Int64, Int64}, pt_per_unit::Float64, px_per_unit::Float64)
    @ Makie C:\Users\pollaccoj\.julia\packages\Makie\ZK3qM\src\display.jl:243
  [6] save(file::FileIO.File{FileIO.DataFormat{:SVG}, String}, fig::Makie.Figure)
    @ Makie C:\Users\pollaccoj\.julia\packages\Makie\ZK3qM\src\display.jl:231
  [7] save(filename::String, fig::Makie.Figure; args::Base.Iterators.Pairs{Union{}, Union{}, Tuple{}, NamedTuple{(), Tuple{}}})
    @ Makie C:\Users\pollaccoj\.julia\packages\Makie\ZK3qM\src\display.jl:222
  [8] save(filename::String, fig::Makie.Figure)
    @ Makie C:\Users\pollaccoj\.julia\packages\Makie\ZK3qM\src\display.jl:222

When I run Test Makie I get the following warning which might be helpful for debugging:

WARNING: using GeometryBasics.volume in module ReferenceTests conflicts with an existing identifier.

I opened an Issue #989 on the Makie GitHub.

Replace in what context?

I present this alert when trying to reset the GLMakie v0.4.2 package. What should I do?

(@v1.6) pkg> test GLMakie
     Testing GLMakie
┌ Warning: Could not use exact versions of packages in manifest, re-resolving
└ @ Pkg.Operations C:\buildbot\worker\package_win64\build\usr\share\julia\stdlib\v1.6\Pkg\src\Operations.jl:1526
ERROR: expected package `ReferenceTests [d37af2e0]` to be registered

julia> versioninfo()
Julia Version 1.6.1
Commit 6aaedecc44 (2021-04-23 05:59 UTC)
Platform Info:
  OS: Windows (x86_64-w64-mingw32)
  CPU: AMD Ryzen 7 1800X Eight-Core Processor
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-11.0.1 (ORCJIT, znver1)

julia>