DimensionalData.jl
DimensionalData.jl copied to clipboard
spy(dd) not working because of ambiguity
The spy plot is not working for a DimensionalArray because of some ambiguity in the convert_arguments pipeline.
julia> dd = DimArray(rand(6,5), (X(1:6), Y(4:8)))
╭─────────────────────────╮
│ 6×5 DimArray{Float64,2} │
├─────────────────────────┴──────────────────────────────────────────────────────────────────────────────────────────────── dims ┐
↓ X Sampled{Int64} 1:6 ForwardOrdered Regular Points,
→ Y Sampled{Int64} 4:8 ForwardOrdered Regular Points
└────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
↓ → 4 5 6 7 8
1 0.0787359 0.382833 0.374837 0.514333 0.936026
2 0.385325 0.301244 0.264966 0.70313 0.819278
3 0.0483895 0.986391 0.923494 0.35545 0.969923
4 0.552739 0.21211 0.00512503 0.650018 0.973412
5 0.679107 0.204973 0.942496 0.950757 0.129172
6 0.182793 0.158313 0.683587 0.104264 0.964841
julia> spy(dd)
ERROR: MethodError: convert_arguments(::Type{Plot{Makie.spy}}, ::DimMatrix{Float64, Tuple{X{DimensionalData.Dimensions.Lookups.Sampled{Int64, UnitRange{Int64}, DimensionalData.Dimensions.Lookups.ForwardOrdered, DimensionalData.Dimensions.Lookups.Regular{Int64}, DimensionalData.Dimensions.Lookups.Points, DimensionalData.Dimensions.Lookups.NoMetadata}}, Y{DimensionalData.Dimensions.Lookups.Sampled{Int64, UnitRange{Int64}, DimensionalData.Dimensions.Lookups.ForwardOrdered, DimensionalData.Dimensions.Lookups.Regular{Int64}, DimensionalData.Dimensions.Lookups.Points, DimensionalData.Dimensions.Lookups.NoMetadata}}}, Tuple{}, Matrix{Float64}, DimensionalData.NoName, DimensionalData.Dimensions.Lookups.NoMetadata}) is ambiguous.
Candidates:
convert_arguments(::Type{<:Plot{Makie.spy}}, matrix::AbstractMatrix{T}) where T
@ Makie ~/.julia/packages/Makie/8h0bl/src/basic_recipes/spy.jl:66
convert_arguments(t::Type{<:AbstractPlot}, A::AbstractDimMatrix)
@ DimensionalDataMakie ~/.julia/packages/DimensionalData/VxDQB/ext/DimensionalDataMakie.jl:374
Possible fix, define
convert_arguments(::Type{<:Plot{Makie.spy}}, ::AbstractDimMatrix{T}) where T
Stacktrace:
[1] _surface2(A::DimMatrix{…}, plotfunc::Function, attributes::@Kwargs{}, replacements::Tuple{})
@ DimensionalDataMakie ~/.julia/packages/DimensionalData/VxDQB/ext/DimensionalDataMakie.jl:185
[2] #spy#75
@ ~/.julia/packages/DimensionalData/VxDQB/ext/DimensionalDataMakie.jl:140 [inlined]
[3] spy(A::DimMatrix{…})
@ DimensionalDataMakie ~/.julia/packages/DimensionalData/VxDQB/ext/DimensionalDataMakie.jl:136
[4] top-level scope
@ REPL[60]:1
Some type information was truncated. Use `show(err)` to see complete types.
Maybe solve by #795 ?
Still a problem
ERROR: MethodError: convert_arguments(::NoConversion, ::DimMatrix{Float64, Tuple{X{DimensionalData.Dimensions.Lookups.Sampled{Int64, UnitRange{Int64}, DimensionalData.Dimensions.Lookups.ForwardOrdered, DimensionalData.Dimensions.Lookups.Regular{Int64}, DimensionalData.Dimensions.Lookups.Points, DimensionalData.Dimensions.Lookups.NoMetadata}}, Y{DimensionalData.Dimensions.Lookups.Sampled{Int64, UnitRange{Int64}, DimensionalData.Dimensions.Lookups.ForwardOrdered, DimensionalData.Dimensions.Lookups.Regular{Int64}, DimensionalData.Dimensions.Lookups.Points, DimensionalData.Dimensions.Lookups.NoMetadata}}}, Tuple{}, Matrix{Float64}, DimensionalData.NoName, DimensionalData.Dimensions.Lookups.NoMetadata}) is ambiguous.
Candidates:
convert_arguments(::NoConversion, args...; kw...)
@ MakieCore ~/.julia/dev/Makie/MakieCore/src/conversion.jl:107
convert_arguments(t::ConversionTrait, A::AbstractDimArray{<:Any, N}) where N
@ DimensionalDataMakie ~/.julia/dev/DimensionalData/ext/DimensionalDataMakie.jl:459
Possible fix, define
convert_arguments(::NoConversion, ::AbstractDimArray{<:Any, N}) where N
but I'll pass a fix up
semi works now, but the axis ticks are still wrong. Don't have time to bugfix that at the moment but it can probably go in some other later PR...