-
Notifications
You must be signed in to change notification settings - Fork 47
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Heatmap of single-value matrix works on CairoMakie but not via AoG #590
Comments
DimensionalData should now be compatible with Makie v0.22. |
With (jl_PuhZeS) pkg> st
Status `C:\Users\Aaron\AppData\Local\Temp\jl_PuhZeS\Project.toml`
[cbdf2221] AlgebraOfGraphics v0.9.1
[13f3f980] CairoMakie v0.13.1
(jl_PuhZeS) pkg> st -m Makie
Status `C:\Users\Aaron\AppData\Local\Temp\jl_PuhZeS\Manifest.toml`
[ee78f7c6] Makie v0.22.1 the following pregrouped([1:3], [1:2], [rand(3, 2)]) * visual(Heatmap) |> draw works as usual but now julia> pregrouped([1:3], [1:2], [zeros(3, 2)]) * visual(Heatmap) |> draw
ERROR: Invalid text boundingbox GeometryBasics.HyperRectangle{3, Float64}([109.0, NaN, 0.0], [7.783999919891357, 16.309999465942383, 0.0]) Full error: julia> pregrouped([1:3], [1:2], [zeros(3, 2)]) * visual(Heatmap) |> draw
ERROR: Invalid text boundingbox GeometryBasics.HyperRectangle{3, Float64}([109.0, NaN, 0.0], [7.783999919891357, 16.309999465942383, 0.0])
Stacktrace:
[1] error(s::String)
@ Base .\error.jl:35
[2] string_boundingbox
@ C:\Users\Aaron\.julia\packages\Makie\Q6F2P\src\layouting\text_boundingbox.jl:64 [inlined]
[3] (::Makie.var"#1053#1054")(layout::Makie.GlyphCollection, pos::Point{3, Float64}, rot::Quaternionf)
@ Makie C:\Users\Aaron\.julia\packages\Makie\Q6F2P\src\layouting\text_boundingbox.jl:110
[4] macro expansion
@ C:\Users\Aaron\.julia\packages\Makie\Q6F2P\src\utilities\utilities.jl:213 [inlined]
[5] broadcast_foreach(::Makie.var"#1053#1054", ::Vector{Makie.GlyphCollection}, ::Vector{Point{3, Float64}}, ::Quaternionf)
@ Makie C:\Users\Aaron\.julia\packages\Makie\Q6F2P\src\utilities\utilities.jl:199
[6] unchecked_boundingbox(layouts::Vector{Makie.GlyphCollection}, positions::Vector{Point{…}}, rotations::Quaternionf)
@ Makie C:\Users\Aaron\.julia\packages\Makie\Q6F2P\src\layouting\text_boundingbox.jl:108
[7] string_boundingbox(::Vector{Makie.GlyphCollection}, ::Vector{Point{3, Float64}}, ::Vararg{Any})
@ Makie C:\Users\Aaron\.julia\packages\Makie\Q6F2P\src\layouting\text_boundingbox.jl:63
[8] string_boundingbox(x::MakieCore.Text{Tuple{Vector{Makie.GlyphCollection}}})
@ Makie C:\Users\Aaron\.julia\packages\Makie\Q6F2P\src\layouting\text_boundingbox.jl:59
[9] string_boundingbox(plot::MakieCore.Text{Tuple{Vector{Point{3, Float64}}}})
@ Makie C:\Users\Aaron\.julia\packages\Makie\Q6F2P\src\layouting\text_boundingbox.jl:26
[10] string_boundingbox(plot::MakieCore.Text{Tuple{Vector{Tuple{Any, Point{2, Float32}}}}})
@ Makie C:\Users\Aaron\.julia\packages\Makie\Q6F2P\src\layouting\text_boundingbox.jl:26
[11] data_limits(plot::MakieCore.Text{Tuple{Vector{Tuple{Any, Point{2, Float32}}}}})
@ Makie C:\Users\Aaron\.julia\packages\Makie\Q6F2P\src\layouting\data_limits.jl:80
[12] boundingbox(plot::MakieCore.Text{Tuple{Vector{Tuple{Any, Point{2, Float32}}}}}, target_space::Symbol)
@ Makie C:\Users\Aaron\.julia\packages\Makie\Q6F2P\src\layouting\text_boundingbox.jl:13
[13] (::Makie.var"#1611#1625"{Observable{Tuple{…}}, Observable{Any}})(::Vector{Tuple{Any, Point{…}}}, ::Vararg{Any})
@ Makie C:\Users\Aaron\.julia\packages\Makie\Q6F2P\src\makielayout\lineaxis.jl:309
[14] invokelatest(::Any, ::Any, ::Vararg{Any}; kwargs::@Kwargs{})
@ Base .\essentials.jl:1055
[15] invokelatest(::Any, ::Any, ::Vararg{Any})
@ Base .\essentials.jl:1052
[16] (::Observables.MapCallback)(value::Any)
@ Observables C:\Users\Aaron\.julia\packages\Observables\YdEbO\src\Observables.jl:436
[17] #invokelatest#2
@ .\essentials.jl:1055 [inlined]
[18] invokelatest
@ .\essentials.jl:1052 [inlined]
[19] notify(observable::Observables.AbstractObservable)
@ Observables C:\Users\Aaron\.julia\packages\Observables\YdEbO\src\Observables.jl:206
[20] Makie.LineAxis(parent::Scene, attrs::Attributes)
@ Makie C:\Users\Aaron\.julia\packages\Makie\Q6F2P\src\makielayout\lineaxis.jl:512
[21] #LineAxis#1595
@ C:\Users\Aaron\.julia\packages\Makie\Q6F2P\src\makielayout\lineaxis.jl:8 [inlined]
[22] initialize_block!(cb::Colorbar)
@ Makie C:\Users\Aaron\.julia\packages\Makie\Q6F2P\src\makielayout\blocks\colorbar.jl:364
[23] _block(T::Type{…}, fig_or_scene::Figure, args::Vector{…}, kwdict::Dict{…}, bbox::Nothing; kwdict_complete::Bool)
@ Makie C:\Users\Aaron\.julia\packages\Makie\Q6F2P\src\makielayout\blocks.jl:398
[24] _block
@ C:\Users\Aaron\.julia\packages\Makie\Q6F2P\src\makielayout\blocks.jl:317 [inlined]
[25] #_block#1444
@ C:\Users\Aaron\.julia\packages\Makie\Q6F2P\src\makielayout\blocks.jl:262 [inlined]
[26] _block(::Type{…}, ::GridPosition; kwargs::@Kwargs{…})
@ Makie C:\Users\Aaron\.julia\packages\Makie\Q6F2P\src\makielayout\blocks.jl:256
[27] _block
@ C:\Users\Aaron\.julia\packages\Makie\Q6F2P\src\makielayout\blocks.jl:249 [inlined]
[28] #_#1442
@ C:\Users\Aaron\.julia\packages\Makie\Q6F2P\src\makielayout\blocks.jl:240 [inlined]
[29] colorbar!(figpos::GridPosition, grid::AlgebraOfGraphics.FigureGrid; kwargs::@Kwargs{vertical::Bool})
@ AlgebraOfGraphics C:\Users\Aaron\.julia\packages\AlgebraOfGraphics\E0gIq\src\guides\colorbar.jl:16
[30] colorbar!
@ C:\Users\Aaron\.julia\packages\AlgebraOfGraphics\E0gIq\src\guides\colorbar.jl:14 [inlined]
[31] #colorbar!#363
@ C:\Users\Aaron\.julia\packages\AlgebraOfGraphics\E0gIq\src\guides\colorbar.jl:5 [inlined]
[32] colorbar!
@ C:\Users\Aaron\.julia\packages\AlgebraOfGraphics\E0gIq\src\guides\colorbar.jl:1 [inlined]
[33] (::AlgebraOfGraphics.var"#383#390"{…})(f::Figure)
@ AlgebraOfGraphics C:\Users\Aaron\.julia\packages\AlgebraOfGraphics\E0gIq\src\draw.jl:182
[34] update
@ C:\Users\Aaron\.julia\packages\AlgebraOfGraphics\E0gIq\src\draw.jl:10 [inlined]
[35] _draw(ae::Matrix{…}; axis::Dictionaries.Dictionary{…}, figure::Dictionaries.Dictionary{…}, facet::Dictionaries.Dictionary{…}, legend::Dictionaries.Dictionary{…}, colorbar::Dictionaries.Dictionary{…})
@ AlgebraOfGraphics C:\Users\Aaron\.julia\packages\AlgebraOfGraphics\E0gIq\src\draw.jl:175
[36] _draw(d::Layer, scales::AlgebraOfGraphics.Scales; axis::Dictionaries.Dictionary{…}, figure::Dictionaries.Dictionary{…}, facet::Dictionaries.Dictionary{…}, legend::Dictionaries.Dictionary{…}, colorbar::Dictionaries.Dictionary{…})
@ AlgebraOfGraphics C:\Users\Aaron\.julia\packages\AlgebraOfGraphics\E0gIq\src\draw.jl:158
[37] _draw
@ C:\Users\Aaron\.julia\packages\AlgebraOfGraphics\E0gIq\src\draw.jl:154 [inlined]
[38] draw(d::Layer, scales::AlgebraOfGraphics.Scales; axis::@NamedTuple{}, figure::@NamedTuple{}, facet::@NamedTuple{}, legend::@NamedTuple{}, colorbar::@NamedTuple{}, palette::Nothing)
@ AlgebraOfGraphics C:\Users\Aaron\.julia\packages\AlgebraOfGraphics\E0gIq\src\draw.jl:85
[39] draw
@ C:\Users\Aaron\.julia\packages\AlgebraOfGraphics\E0gIq\src\draw.jl:75 [inlined]
[40] draw(d::Layer)
@ AlgebraOfGraphics C:\Users\Aaron\.julia\packages\AlgebraOfGraphics\E0gIq\src\draw.jl:75
[41] |>(x::Layer, f::typeof(draw))
@ Base .\operators.jl:926
[42] top-level scope
@ REPL[10]:1
Some type information was truncated. Use `show(err)` to see complete types. |
Is this an AoG problem or can it be reproduced with just Makie primitives? |
If I understand your question correctly, the same matrix is plottable in Makie but not in AoG, so it's an AoG issue. |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Bug description
AoG seems to try and create a range of values for the heatmap's colorbar ticks,
but if it's just one value then it errors creating a
Colon
range with step zero.Heatmap is produced by CairoMakie without issue,
so the issues lies in AoG code.
get_minor_tickvalues
needs a corner case to handle this?Steps to reproduce
Heatmap of zeros by CairoMakie:
Heatmap of zeros by CairoMakie via AoG:
Error reporting
Version info
Before opening an issue
Makie had a recent breaking update that DimensionalData doesn't play with yet.
And an environment with CairoMakie 0.13.0 and AoG only produces MakieOrg/Makie.jl#4731.
The text was updated successfully, but these errors were encountered: