MakieLayout.jl
MakieLayout.jl copied to clipboard
StackOverflowError with lots of layouts & plots
I have a layout with 5 sub layouts, each with n
different image plots, lineplots, scatter plots that are updated with observables. It's all working really well (🎉) when n<6
but above that, I guess I'm pushing the limits on some indexing because I'm hitting a StackOverflowError.
ERROR: StackOverflowError:
Stacktrace:
[1] exec(::Ptr{Nothing}, ::String, ::Int64, ::UInt32, ::Ptr{Nothing}) at ./pcre.jl:155
[2] exec_r_data at ./pcre.jl:172 [inlined]
[3] match(::Regex, ::String, ::Int64, ::UInt32) at ./regex.jl:277
[4] match at ./regex.jl:275 [inlined]
[5] match at ./regex.jl:294 [inlined]
[6] iswhitespace at /Users/ian/.julia/packages/MakieLayout/3a66O/src/lineaxis.jl:298 [inlined]
[7] (::MakieLayout.var"#compute_protrusions#185"{Text{...}})(::String, ::Float32, ::Float32, ::Bool, ::Float32, ::Bool, ::Bool, ::Bool, ::Bool, ::Float32, ::Float32, ::Symbol, ::Symbol) at /Users/ian/.julia/packages/MakieLayout/3a66O/src/lobjects/laxis.jl:289
[8] (::MakieLayout.var"#162#186"{Observables.Observable{GridLayoutBase.RectSides{Float32}},MakieLayout.var"#compute_protrusions#185"{Text{...}}})(::String, ::Vararg{Any,N} where N) at /Users/ian/.julia/packages/MakieLayout/3a66O/src/lobjects/laxis.jl:310
[9] (::Observables.OnUpdate{MakieLayout.var"#162#186"{Observables.Observable{GridLayoutBase.RectSides{Float32}},MakieLayout.var"#compute_protrusions#185"{Text{...}}},Tuple{Observables.Observable{Any},Observables.Observable{Any},Observables.Observable{Any},Observables.Observable{Any},Observables.Observable{Any},Observables.Observable{Any},Observables.Observable{Any},Observables.Observable{Any},Observables.Observable{Any},Observables.Observable{Float32},Observables.Observable{Float32},Observables.Observable{Any},Observables.Observable{Any}}})(::Float32) at /Users/ian/.julia/packages/Observables/0wrF6/src/Observables.jl:218
[10] setindex!(::Observables.Observable{Float32}, ::Float32; notify::Observables.var"#6#8") at /Users/ian/.julia/packages/Observables/0wrF6/src/Observables.jl:130
[11] setindex!(::Observables.Observable{Float32}, ::Float32) at /Users/ian/.julia/packages/Observables/0wrF6/src/Observables.jl:126
[12] (::Observables.MapUpdater{MakieLayout.var"#116#137"{Observables.Observable{Tuple{Float32,Tuple{Float32,Float32},Bool}},Text{...}},Float32})(::Bool, ::Vararg{Any,N} where N) at /Users/ian/.julia/packages/Observables/0wrF6/src/Observables.jl:241
[13] (::Observables.OnUpdate{Observables.MapUpdater{MakieLayout.var"#116#137"{Observables.Observable{Tuple{Float32,Tuple{Float32,Float32},Bool}},Text{...}},Float32},Tuple{Observables.Observable{Any},Observables.Observable{Any},Observables.Observable{Any},Observables.Observable{Any},Observables.Observable{Any},Observables.Observable{Any},Observables.Observable{Any},Observables.Observable{Any},Observables.Observable{Float32},Observables.Observable{Any},Observables.Observable{Any},Observables.Observable{Any},Observables.Observable{Any},Observables.Observable{Any}}})(::Float32) at /Users/ian/.julia/packages/Observables/0wrF6/src/Observables.jl:218
[14] setindex!(::Observables.Observable{Any}, ::Float32; notify::Observables.var"#6#8") at /Users/ian/.julia/packages/Observables/0wrF6/src/Observables.jl:130
[15] setindex! at /Users/ian/.julia/packages/Observables/0wrF6/src/Observables.jl:126 [inlined]
[16] (::MakieLayout.var"#98#119"{Observables.Observable{Any}})(::Float32, ::AbstractPlotting.Automatic) at /Users/ian/.julia/packages/MakieLayout/3a66O/src/lineaxis.jl:69
[17] (::Observables.OnUpdate{MakieLayout.var"#98#119"{Observables.Observable{Any}},Tuple{Observables.Observable{Float32},Observables.Observable{Any}}})(::Float32) at /Users/ian/.julia/packages/Observables/0wrF6/src/Observables.jl:218
[18] setindex!(::Observables.Observable{Float32}, ::Float32; notify::Observables.var"#6#8") at /Users/ian/.julia/packages/Observables/0wrF6/src/Observables.jl:130
[19] setindex! at /Users/ian/.julia/packages/Observables/0wrF6/src/Observables.jl:126 [inlined]
[20] MapUpdater at /Users/ian/.julia/packages/Observables/0wrF6/src/Observables.jl:241 [inlined]
[21] (::Observables.OnUpdate{Observables.MapUpdater{MakieLayout.var"#97#118"{Observables.Observable{Any},Observables.Observable{Tuple{Float32,Tuple{Float32,Float32},Bool}},Annotations{...}},Float32},Tuple{Observables.Observable{Array{Tuple{String,GeometryBasics.Point{2,Float32}},1}},Observables.Observable{Any},Observables.Observable{Any},Observables.Observable{Any},Observables.Observable{Any}}})(::Array{Tuple{String,GeometryBasics.Point{2,Float32}},1}) at /Users/ian/.julia/packages/Observables/0wrF6/src/Observables.jl:218
[22] setindex!(::Observables.Observable{Array{Tuple{String,GeometryBasics.Point{2,Float32}},1}}, ::Array{Tuple{String,GeometryBasics.Point{2,Float32}},1}; notify::Observables.var"#6#8") at /Users/ian/.julia/packages/Observables/0wrF6/src/Observables.jl:130
[23] setindex! at /Users/ian/.julia/packages/Observables/0wrF6/src/Observables.jl:126 [inlined]
[24] (::MakieLayout.var"#109#130"{Observables.Observable{Any},Observables.Observable{Any},Observables.Observable{Tuple{Float32,Tuple{Float32,Float32},Bool}},Observables.Observable{Array{Tuple{String,GeometryBasics.Point{2,Float32}},1}},Observables.Observable{Float32},Observables.Observable{Array{Float32,1}},Observables.Observable{Array{GeometryBasics.Point{2,Float32},1}}})(::Array{String,1}, ::Float32, ::Bool) at /Users/ian/.julia/packages/MakieLayout/3a66O/src/lineaxis.jl:201
[25] (::Observables.OnUpdate{MakieLayout.var"#109#130"{Observables.Observable{Any},Observables.Observable{Any},Observables.Observable{Tuple{Float32,Tuple{Float32,Float32},Bool}},Observables.Observable{Array{Tuple{String,GeometryBasics.Point{2,Float32}},1}},Observables.Observable{Float32},Observables.Observable{Array{Float32,1}},Observables.Observable{Array{GeometryBasics.Point{2,Float32},1}}},Tuple{Observables.Observable{Array{String,1}},Observables.Observable{Float32},Observables.Observable{Any}}})(::Array{String,1}) at /Users/ian/.julia/packages/Observables/0wrF6/src/Observables.jl:218
[26] setindex!(::Observables.Observable{Array{String,1}}, ::Array{String,1}; notify::Observables.var"#6#8") at /Users/ian/.julia/packages/Observables/0wrF6/src/Observables.jl:130
[27] setindex!(::Observables.Observable{Array{String,1}}, ::Array{String,1}) at /Users/ian/.julia/packages/Observables/0wrF6/src/Observables.jl:126
[28] (::MakieLayout.var"#105#126"{Observables.Observable{Any},Observables.Observable{Any},Observables.Observable{Tuple{Float32,Tuple{Float32,Float32},Bool}},Observables.Observable{Array{Float32,1}},Observables.Observable{Array{GeometryBasics.Point{2,Float32},1}},Observables.Observable{Array{String,1}}})(::Array{Float64,1}, ::Bool, ::AbstractPlotting.Automatic) at /Users/ian/.julia/packages/MakieLayout/3a66O/src/lineaxis.jl:180
[29] (::Observables.OnUpdate{MakieLayout.var"#105#126"{Observables.Observable{Any},Observables.Observable{Any},Observables.Observable{Tuple{Float32,Tuple{Float32,Float32},Bool}},Observables.Observable{Array{Float32,1}},Observables.Observable{Array{GeometryBasics.Point{2,Float32},1}},Observables.Observable{Array{String,1}}},Tuple{Observables.Observable{Array{Float64,1}},Observables.Observable{Any},Observables.Observable{Any}}})(::Array{Float64,1}) at /Users/ian/.julia/packages/Observables/0wrF6/src/Observables.jl:218
[30] setindex!(::Observables.Observable{Array{Float64,1}}, ::Array{Float64,1}; notify::Observables.var"#6#8") at /Users/ian/.julia/packages/Observables/0wrF6/src/Observables.jl:130
[31] setindex!(::Observables.Observable{Array{Float64,1}}, ::Array{Float64,1}) at /Users/ian/.julia/packages/Observables/0wrF6/src/Observables.jl:126
[32] (::Observables.MapUpdater{MakieLayout.var"#104#125",Array{Float64,1}})(::Tuple{Float32,Tuple{Float32,Float32},Bool}, ::Vararg{Any,N} where N) at /Users/ian/.julia/packages/Observables/0wrF6/src/Observables.jl:241
[33] (::Observables.OnUpdate{Observables.MapUpdater{MakieLayout.var"#104#125",Array{Float64,1}},Tuple{Observables.Observable{Tuple{Float32,Tuple{Float32,Float32},Bool}},Observables.Observable{Any},Observables.Observable{Any}}})(::Tuple{Float32,Float32}) at /Users/ian/.julia/packages/Observables/0wrF6/src/Observables.jl:218
[34] setindex!(::Observables.Observable{Any}, ::Tuple{Float32,Float32}; notify::Observables.var"#6#8") at /Users/ian/.julia/packages/Observables/0wrF6/src/Observables.jl:130
[35] setindex! at /Users/ian/.julia/packages/Observables/0wrF6/src/Observables.jl:126 [inlined]
[36] (::Observables.var"#3#4"{Any,Observables.Observable{Any}})(::Tuple{Float32,Float32}) at /Users/ian/.julia/packages/Observables/0wrF6/src/Observables.jl:47
[37] #invokelatest#1 at ./essentials.jl:712 [inlined]
[38] invokelatest at ./essentials.jl:711 [inlined]
[39] setindex!(::Observables.Observable{Tuple{Float32,Float32}}, ::Tuple{Float32,Float32}; notify::Observables.var"#6#8") at /Users/ian/.julia/packages/Observables/0wrF6/src/Observables.jl:132
[40] setindex! at /Users/ian/.julia/packages/Observables/0wrF6/src/Observables.jl:126 [inlined]
[41] MapUpdater at /Users/ian/.julia/packages/Observables/0wrF6/src/Observables.jl:241 [inlined]
[42] (::Observables.OnUpdate{Observables.MapUpdater{typeof(MakieLayout.ylimits),Tuple{Float32,Float32}},Tuple{Observables.Observable{GeometryBasics.HyperRectangle{2,Float32}}}})(::GeometryBasics.HyperRectangle{2,Float32}) at /Users/ian/.julia/packages/Observables/0wrF6/src/Observables.jl:218
[43] setindex!(::Observables.Observable{GeometryBasics.HyperRectangle{2,Float32}}, ::GeometryBasics.HyperRectangle{2,Float32}; notify::Observables.var"#6#8") at /Users/ian/.julia/packages/Observables/0wrF6/src/Observables.jl:130
[44] setindex!(::Observables.Observable{GeometryBasics.HyperRectangle{2,Float32}}, ::GeometryBasics.HyperRectangle{2,Float32}) at /Users/ian/.julia/packages/Observables/0wrF6/src/Observables.jl:126
[45] adjustlimits!(::MakieLayout.LAxis) at /Users/ian/.julia/packages/MakieLayout/3a66O/src/lobjects/laxis.jl:573
[46] #163 at /Users/ian/.julia/packages/MakieLayout/3a66O/src/lobjects/laxis.jl:339 [inlined]
[47] (::Observables.OnUpdate{MakieLayout.var"#163#187"{MakieLayout.LAxis},Tuple{Observables.Observable{GeometryBasics.HyperRectangle{2,Int64}},Observables.Observable{Any}}})(::GeometryBasics.HyperRectangle{2,Int64}) at /Users/ian/.julia/packages/Observables/0wrF6/src/Observables.jl:218
[48] setindex!(::Observables.Observable{GeometryBasics.HyperRectangle{2,Int64}}, ::GeometryBasics.HyperRectangle{2,Int64}; notify::Observables.var"#6#8") at /Users/ian/.julia/packages/Observables/0wrF6/src/Observables.jl:130
[49] setindex! at /Users/ian/.julia/packages/Observables/0wrF6/src/Observables.jl:126 [inlined]
[50] MapUpdater at /Users/ian/.julia/packages/Observables/0wrF6/src/Observables.jl:241 [inlined]
[51] (::Observables.OnUpdate{Observables.MapUpdater{AbstractPlotting.var"#70#71",GeometryBasics.HyperRectangle{2,Int64}},Tuple{Observables.Observable{GeometryBasics.HyperRectangle{2,Int64}},Observables.Observable{GeometryBasics.HyperRectangle{2,Int64}}}})(::GeometryBasics.HyperRectangle{2,Int64}) at /Users/ian/.julia/packages/Observables/0wrF6/src/Observables.jl:218
[52] setindex!(::Observables.Observable{GeometryBasics.HyperRectangle{2,Int64}}, ::GeometryBasics.HyperRectangle{2,Int64}; notify::Observables.var"#6#8") at /Users/ian/.julia/packages/Observables/0wrF6/src/Observables.jl:130
[53] setindex! at /Users/ian/.julia/packages/Observables/0wrF6/src/Observables.jl:126 [inlined]
[54] (::MakieLayout.var"#5#6"{Observables.Observable{GeometryBasics.HyperRectangle{2,Int64}}})(::GeometryBasics.HyperRectangle{2,Float32}, ::GeometryBasics.HyperRectangle{2,Float32}, ::Nothing) at /Users/ian/.julia/packages/MakieLayout/3a66O/src/helpers.jl:50
[55] (::Observables.OnUpdate{MakieLayout.var"#5#6"{Observables.Observable{GeometryBasics.HyperRectangle{2,Int64}}},Tuple{Observables.Observable{GeometryBasics.HyperRectangle{2,Float32}},Observables.Observable{GeometryBasics.HyperRectangle{2,Float32}},Observables.Observable{Any}}})(::GeometryBasics.HyperRectangle{2,Float32}) at /Users/ian/.julia/packages/Observables/0wrF6/src/Observables.jl:218
[56] setindex!(::Observables.Observable{GeometryBasics.HyperRectangle{2,Float32}}, ::GeometryBasics.HyperRectangle{2,Float32}; notify::Observables.var"#6#8") at /Users/ian/.julia/packages/Observables/0wrF6/src/Observables.jl:130
[57] setindex! at /Users/ian/.julia/packages/Observables/0wrF6/src/Observables.jl:126 [inlined]
[58] (::GridLayoutBase.var"#115#116"{Observables.Observable{Tuple{Any,Any}},Observables.Observable{Tuple{Union{Nothing, Float32},Union{Nothing, Float32}}},Observables.Observable{Any},Observables.Observable{GridLayoutBase.RectSides{Float32}},Observables.Observable{GeometryBasics.HyperRectangle{2,Float32}}})(::GeometryBasics.HyperRectangle{2,Float32}, ::Tuple{Symbol,Symbol}, ::Tuple{Nothing,Nothing}) at /Users/ian/.julia/packages/GridLayoutBase/Z0vpC/src/layoutobservables.jl:279
[59] (::Observables.OnUpdate{GridLayoutBase.var"#115#116"{Observables.Observable{Tuple{Any,Any}},Observables.Observable{Tuple{Union{Nothing, Float32},Union{Nothing, Float32}}},Observables.Observable{Any},Observables.Observable{GridLayoutBase.RectSides{Float32}},Observables.Observable{GeometryBasics.HyperRectangle{2,Float32}}},Tuple{Observables.Observable{GeometryBasics.HyperRectangle{2,Float32}},Observables.Observable{Any},Observables.Observable{Tuple{Union{Nothing, Float32},Union{Nothing, Float32}}}}})(::GeometryBasics.HyperRectangle{2,Float32}) at /Users/ian/.julia/packages/Observables/0wrF6/src/Observables.jl:218
[60] setindex!(::Observables.Observable{GeometryBasics.HyperRectangle{2,Float32}}, ::GeometryBasics.HyperRectangle{2,Float32}; notify::Observables.var"#6#8") at /Users/ian/.julia/packages/Observables/0wrF6/src/Observables.jl:130
[61] setindex!(::Observables.Observable{GeometryBasics.HyperRectangle{2,Float32}}, ::GeometryBasics.HyperRectangle{2,Float32}) at /Users/ian/.julia/packages/Observables/0wrF6/src/Observables.jl:126
[62] align_to_bbox!(::GridLayoutBase.GridLayout, ::GeometryBasics.HyperRectangle{2,Float32}) at /Users/ian/.julia/packages/GridLayoutBase/Z0vpC/src/gridlayout.jl:700
[63] (::GridLayoutBase.var"#10#12"{GridLayoutBase.GridLayout})(::GeometryBasics.HyperRectangle{2,Float32}) at /Users/ian/.julia/packages/GridLayoutBase/Z0vpC/src/gridlayout.jl:54
[64] #invokelatest#1 at ./essentials.jl:712 [inlined]
[65] invokelatest at ./essentials.jl:711 [inlined]
[66] setindex!(::Observables.Observable{GeometryBasics.HyperRectangle{2,Float32}}, ::GeometryBasics.HyperRectangle{2,Float32}; notify::Observables.var"#6#8") at /Users/ian/.julia/packages/Observables/0wrF6/src/Observables.jl:132
[67] setindex! at /Users/ian/.julia/packages/Observables/0wrF6/src/Observables.jl:126 [inlined]
[68] (::GridLayoutBase.var"#115#116"{Observables.Observable{Tuple{Any,Any}},Observables.Observable{Tuple{Union{Nothing, Float32},Union{Nothing, Float32}}},Observables.Observable{GridLayoutBase.AlignMode},Observables.Observable{GridLayoutBase.RectSides{Float32}},Observables.Observable{GeometryBasics.HyperRectangle{2,Float32}}})(::GeometryBasics.HyperRectangle{2,Float32}, ::Tuple{Symbol,Symbol}, ::Tuple{Nothing,Nothing}) at /Users/ian/.julia/packages/GridLayoutBase/Z0vpC/src/layoutobservables.jl:279
[69] (::Observables.OnUpdate{GridLayoutBase.var"#115#116"{Observables.Observable{Tuple{Any,Any}},Observables.Observable{Tuple{Union{Nothing, Float32},Union{Nothing, Float32}}},Observables.Observable{GridLayoutBase.AlignMode},Observables.Observable{GridLayoutBase.RectSides{Float32}},Observables.Observable{GeometryBasics.HyperRectangle{2,Float32}}},Tuple{Observables.Observable{GeometryBasics.HyperRectangle{2,Float32}},Observables.Observable{Any},Observables.Observable{Tuple{Union{Nothing, Float32},Union{Nothing, Float32}}}}})(::GeometryBasics.HyperRectangle{2,Float32}) at /Users/ian/.julia/packages/Observables/0wrF6/src/Observables.jl:218
[70] setindex!(::Observables.Observable{GeometryBasics.HyperRectangle{2,Float32}}, ::GeometryBasics.HyperRectangle{2,Float32}; notify::Observables.var"#6#8") at /Users/ian/.julia/packages/Observables/0wrF6/src/Observables.jl:130
[71] setindex!(::Observables.Observable{GeometryBasics.HyperRectangle{2,Float32}}, ::GeometryBasics.HyperRectangle{2,Float32}) at /Users/ian/.julia/packages/Observables/0wrF6/src/Observables.jl:126
[72] (::GridLayoutBase.var"#11#13"{GridLayoutBase.GridLayout})(::Bool) at /Users/ian/.julia/packages/GridLayoutBase/Z0vpC/src/gridlayout.jl:72
[73] #invokelatest#1 at ./essentials.jl:712 [inlined]
[74] invokelatest at ./essentials.jl:711 [inlined]
[75] setindex!(::Observables.Observable{Bool}, ::Bool; notify::Observables.var"#6#8") at /Users/ian/.julia/packages/Observables/0wrF6/src/Observables.jl:132
[76] setindex!(::Observables.Observable{Bool}, ::Bool) at /Users/ian/.julia/packages/Observables/0wrF6/src/Observables.jl:126
[77] (::GridLayoutBase.var"#18#19"{GridLayoutBase.GridLayout})(::Bool) at /Users/ian/.julia/packages/GridLayoutBase/Z0vpC/src/gridlayout.jl:156
[78] #invokelatest#1 at ./essentials.jl:712 [inlined]
[79] invokelatest at ./essentials.jl:711 [inlined]
[80] setindex!(::Observables.Observable{Bool}, ::Bool; notify::Observables.var"#6#8") at /Users/ian/.julia/packages/Observables/0wrF6/src/Observables.jl:132
[81] setindex! at /Users/ian/.julia/packages/Observables/0wrF6/src/Observables.jl:126 [inlined]
[82] (::GridLayoutBase.var"#14#16"{GridLayoutBase.GridContent{GridLayoutBase.GridLayout,MakieLayout.LAxis}})(::GridLayoutBase.RectSides{Float32}) at /Users/ian/.julia/packages/GridLayoutBase/Z0vpC/src/gridlayout.jl:127
[83] #invokelatest#1 at ./essentials.jl:712 [inlined]
[84] invokelatest at ./essentials.jl:711 [inlined]
[85] setindex!(::Observables.Observable{GridLayoutBase.RectSides{Float32}}, ::GridLayoutBase.RectSides{Float32}; notify::Observables.var"#6#8") at /Users/ian/.julia/packages/Observables/0wrF6/src/Observables.jl:132
[86] setindex! at /Users/ian/.julia/packages/Observables/0wrF6/src/Observables.jl:126 [inlined]
[87] #105 at /Users/ian/.julia/packages/GridLayoutBase/Z0vpC/src/layoutobservables.jl:26 [inlined]
[88] (::Observables.OnUpdate{GridLayoutBase.var"#105#107"{Observables.Observable{GridLayoutBase.RectSides{Float32}}},Tuple{Observables.Observable{GridLayoutBase.RectSides{Float32}},Observables.Observable{Any}}})(::GridLayoutBase.RectSides{Float32}) at /Users/ian/.julia/packages/Observables/0wrF6/src/Observables.jl:218
[89] setindex!(::Observables.Observable{GridLayoutBase.RectSides{Float32}}, ::GridLayoutBase.RectSides{Float32}; notify::Observables.var"#6#8") at /Users/ian/.julia/packages/Observables/0wrF6/src/Observables.jl:130
[90] setindex! at /Users/ian/.julia/packages/Observables/0wrF6/src/Observables.jl:126 [inlined]
... (the last 83 lines are repeated 324 more times)
[26983] (::MakieLayout.var"#162#186"{Observables.Observable{GridLayoutBase.RectSides{Float32}},MakieLayout.var"#compute_protrusions#185"{Text{...}}})(::String, ::Vararg{Any,N} where N) at /Users/ian/.julia/packages/MakieLayout/3a66O/src/lobjects/laxis.jl:310
[26984] (::Observables.OnUpdate{MakieLayout.var"#162#186"{Observables.Observable{GridLayoutBase.RectSides{Float32}},MakieLayout.var"#compute_protrusions#185"{Text{...}}},Tuple{Observables.Observable{Any},Observables.Observable{Any},Observables.Observable{Any},Observables.Observable{Any},Observables.Observable{Any},Observables.Observable{Any},Observables.Observable{Any},Observables.Observable{Any},Observables.Observable{Any},Observables.Observable{Float32},Observables.Observable{Float32},Observables.Observable{Any},Observables.Observable{Any}}})(::Float32) at /Users/ian/.julia/packages/Observables/0wrF6/src/Observables.jl:218
[26985] setindex!(::Observables.Observable{Float32}, ::Float32; notify::Observables.var"#6#8") at /Users/ian/.julia/packages/Observables/0wrF6/src/Observables.jl:130
[26986] setindex!(::Observables.Observable{Float32}, ::Float32) at /Users/ian/.julia/packages/Observables/0wrF6/src/Observables.jl:126
[26987] (::Observables.MapUpdater{MakieLayout.var"#116#137"{Observables.Observable{Tuple{Float32,Tuple{Float32,Float32},Bool}},Text{...}},Float32})(::Bool, ::Vararg{Any,N} where N) at /Users/ian/.julia/packages/Observables/0wrF6/src/Observables.jl:241
[26988] (::Observables.OnUpdate{Observables.MapUpdater{MakieLayout.var"#116#137"{Observables.Observable{Tuple{Float32,Tuple{Float32,Float32},Bool}},Text{...}},Float32},Tuple{Observables.Observable{Any},Observables.Observable{Any},Observables.Observable{Any},Observables.Observable{Any},Observables.Observable{Any},Observables.Observable{Any},Observables.Observable{Any},Observables.Observable{Any},Observables.Observable{Float32},Observables.Observable{Any},Observables.Observable{Any},Observables.Observable{Any},Observables.Observable{Any},Observables.Observable{Any}}})(::Float32) at /Users/ian/.julia/packages/Observables/0wrF6/src/Observables.jl:218
[26989] setindex!(::Observables.Observable{Any}, ::Float32; notify::Observables.var"#6#8") at /Users/ian/.julia/packages/Observables/0wrF6/src/Observables.jl:130
[26990] setindex! at /Users/ian/.julia/packages/Observables/0wrF6/src/Observables.jl:126 [inlined]
[26991] (::MakieLayout.var"#98#119"{Observables.Observable{Any}})(::Float32, ::AbstractPlotting.Automatic) at /Users/ian/.julia/packages/MakieLayout/3a66O/src/lineaxis.jl:69
[26992] (::Observables.OnUpdate{MakieLayout.var"#98#119"{Observables.Observable{Any}},Tuple{Observables.Observable{Float32},Observables.Observable{Any}}})(::Float32) at /Users/ian/.julia/packages/Observables/0wrF6/src/Observables.jl:218
[26993] setindex!(::Observables.Observable{Float32}, ::Float32; notify::Observables.var"#6#8") at /Users/ian/.julia/packages/Observables/0wrF6/src/Observables.jl:130
[26994] setindex! at /Users/ian/.julia/packages/Observables/0wrF6/src/Observables.jl:126 [inlined]
[26995] MapUpdater at /Users/ian/.julia/packages/Observables/0wrF6/src/Observables.jl:241 [inlined]
[26996] (::Observables.OnUpdate{Observables.MapUpdater{MakieLayout.var"#97#118"{Observables.Observable{Any},Observables.Observable{Tuple{Float32,Tuple{Float32,Float32},Bool}},Annotations{...}},Float32},Tuple{Observables.Observable{Array{Tuple{String,GeometryBasics.Point{2,Float32}},1}},Observables.Observable{Any},Observables.Observable{Any},Observables.Observable{Any},Observables.Observable{Any}}})(::Bool) at /Users/ian/.julia/packages/Observables/0wrF6/src/Observables.jl:218
[26997] setindex!(::Observables.Observable{Any}, ::Bool; notify::Observables.var"#6#8") at /Users/ian/.julia/packages/Observables/0wrF6/src/Observables.jl:130
[26998] setindex!(::Observables.Observable{Any}, ::Bool) at /Users/ian/.julia/packages/Observables/0wrF6/src/Observables.jl:126
[26999] setproperty!(::MakieLayout.LAxis, ::Symbol, ::Bool) at /Users/ian/.julia/packages/MakieLayout/3a66O/src/lobjects/lobject.jl:25
[27000] #hidexdecorations!#201 at /Users/ian/.julia/packages/MakieLayout/3a66O/src/lobjects/laxis.jl:803 [inlined]
[27001] hidexdecorations! at /Users/ian/.julia/packages/MakieLayout/3a66O/src/lobjects/laxis.jl:799 [inlined]
This probably happens because the layout is stuck in an infinite update loop where one change causes another. This is a known problem ever since I made the tick label spacing automatic. Are you using aspect = DataAspect()
or autolimitaspect = 1
? If so, can you try setting those parameters after doing tight_ticklabel_spacing!(ax)
with all your LAxes? That keeps the tick labels from readjusting again and again.
Indeed. Doing axReg.autolimitaspect = 1
after hiding the decorations fixed this:
hidexdecorations!(axReg)
hideydecorations!(axReg)
axReg.autolimitaspect = 1
thanks
A general takeaway for me here is that if you're going to hidexdecorations!
etc. do it before plotting. It speeds things up a lot, even beyond this issue
Does it speed up your code? Hiding decorations still leaves almost all underlying computations intact, the labels are just visually hidden (that's a side effect of using Observables, which are all still connected). Of course, when they're hidden, they don't affect the layout anymore and sparing you the layout recalculations could save some time I guess.
I didn't measure the improvement. It could be placebo..