Failing to `viz` vector of `Segment`
Closed this issue · 0 comments
juliohm commented
julia> si = Segment((1.17891f7, 1.72956f7), (1.17891f7, 1.72954f7))
Segment{2,Float32}
├─ Point(1.17891f7, 1.72956f7)
└─ Point(1.17891f7, 1.72954f7)
julia> sj = Segment((1.17893f7, 1.72956f7), (1.17891f7, 1.72956f7))
Segment{2,Float32}
├─ Point(1.17893f7, 1.72956f7)
└─ Point(1.17891f7, 1.72956f7)
julia> viz([si, sj])
ERROR: `Makie.convert_arguments` for the plot type MakieCore.Lines and its conversion trait MakieCore.PointBased() was unsuccessful.
The signature that could not be converted was:
::Vector{Vec{2}}
Makie needs to convert all plot input arguments to types that can be consumed by the backends (typically Arrays with Float32 elements).
You can define a method for `Makie.convert_arguments` (a type recipe) for these types or their supertypes to make this set of arguments convertible (See http://docs.makie.org/stable/documentation/recipes/index.html).
Alternatively, you can define `Makie.convert_single_argument` for single arguments which have types that are unknown to Makie but which can be converted to known types and fed back to the conversion pipeline.
Stacktrace:
[1] error(s::String)
@ Base ./error.jl:35
[2] convert_arguments(T::Type{MakieCore.Lines}, args::Vector{Vec{2}}; kw::@Kwargs{})
@ Makie ~/.julia/packages/Makie/QGPt0/src/conversions.jl:17
[3] convert_arguments(T::Type{MakieCore.Lines}, args::Vector{Vec{2}})
@ Makie ~/.julia/packages/Makie/QGPt0/src/conversions.jl:7
[4] (MakieCore.Lines)(args::Tuple{Observables.Observable{Vector{Vec{2}}}}, plot_attributes::Dict{Symbol, Any})
@ Makie ~/.julia/packages/Makie/QGPt0/src/interfaces.jl:139
[5] _create_plot!(F::Function, attributes::Dict{…}, scene::MakieCore.Plot{…}, args::Observables.Observable{…})
@ Makie ~/.julia/packages/Makie/QGPt0/src/figureplotting.jl:264
[6] lines!(::MakieCore.Plot{…}, ::Vararg{…}; kw::@Kwargs{…})
@ MakieCore ~/.julia/packages/MakieCore/UAwps/src/recipes.jl:176
[7] vizmesh1D!(plot::MakieCore.Plot{Meshes.viz, Tuple{SimpleMesh{2, Float32, Vector{…}, SimpleTopology{…}}}})
@ MeshesMakieExt ~/.julia/dev/Meshes/ext/simplemesh.jl:47
[8] plot!(plot::MakieCore.Plot{Meshes.viz, Tuple{SimpleMesh{2, Float32, Vector{Point2f}, SimpleTopology{Connectivity{…}}}}})
@ MeshesMakieExt ~/.julia/dev/Meshes/ext/simplemesh.jl:11
[9] connect_plot!(parent::MakieCore.Plot{Meshes.viz, Tuple{…}}, plot::MakieCore.Plot{Meshes.viz, Tuple{…}})
@ Makie ~/.julia/packages/Makie/QGPt0/src/interfaces.jl:255
[10] plot!(scene::MakieCore.Plot{Meshes.viz, Tuple{GeometrySet{…}}}, plot::MakieCore.Plot{Meshes.viz, Tuple{SimpleMesh{…}}})
@ Makie ~/.julia/packages/Makie/QGPt0/src/interfaces.jl:260
[11] _create_plot!(F::Function, attributes::Dict{…}, scene::MakieCore.Plot{…}, args::Observables.Observable{…})
@ Makie ~/.julia/packages/Makie/QGPt0/src/figureplotting.jl:265
[12] viz!(::MakieCore.Plot{…}, ::Vararg{…}; kw::@Kwargs{…})
@ MeshesMakieExt ~/.julia/packages/MakieCore/UAwps/src/recipes.jl:176
[13] vizmany!(plot::MakieCore.Plot{Meshes.viz, Tuple{GeometrySet{…}}}, objs::Observables.Observable{Vector{SimpleMesh{…}}})
@ MeshesMakieExt ~/.julia/dev/Meshes/ext/utils.jl:29
[14] vizgset1D!(plot::MakieCore.Plot{Meshes.viz, Tuple{GeometrySet{…}}}, geoms::Observables.Observable{Vector{Segment{…}}})
@ MeshesMakieExt ~/.julia/dev/Meshes/ext/geometryset.jl:88
[15] plot!(plot::MakieCore.Plot{Meshes.viz, Tuple{GeometrySet{2, Float32, Segment{2, Float32}}}})
@ MeshesMakieExt ~/.julia/dev/Meshes/ext/geometryset.jl:28
[16] connect_plot!(parent::Makie.Scene, plot::MakieCore.Plot{Meshes.viz, Tuple{GeometrySet{2, Float32, Segment{…}}}})
@ Makie ~/.julia/packages/Makie/QGPt0/src/interfaces.jl:255
[17] plot!
@ Makie ~/.julia/packages/Makie/QGPt0/src/interfaces.jl:260 [inlined]
[18] plot!(ax::Makie.Axis, plot::MakieCore.Plot{Meshes.viz, Tuple{GeometrySet{2, Float32, Segment{2, Float32}}}})
@ Makie ~/.julia/packages/Makie/QGPt0/src/figureplotting.jl:291
[19] plot!(fa::Makie.FigureAxis, plot::MakieCore.Plot{Meshes.viz, Tuple{GeometrySet{2, Float32, Segment{2, Float32}}}})
@ Makie ~/.julia/packages/Makie/QGPt0/src/figureplotting.jl:288
[20] _create_plot(F::Function, attributes::Dict{Symbol, Any}, args::Vector{Segment{2, Float32}})
@ Makie ~/.julia/packages/Makie/QGPt0/src/figureplotting.jl:250
[21] viz(args::Vector{Segment{2, Float32}})
@ MeshesMakieExt ~/.julia/packages/MakieCore/UAwps/src/recipes.jl:175
[22] top-level scope
@ REPL[47]:1
caused by: MethodError: no method matching convert_arguments(::Type{MakieCore.Lines}, ::Vector{Vec{2}})
Closest candidates are:
convert_arguments(::Union{Type{Any}, Type{<:MakieCore.AbstractPlot}}, ::AbstractVector, ::Function)
@ Makie ~/.julia/packages/Makie/QGPt0/src/conversions.jl:661
convert_arguments(::Union{Type{Any}, Type{<:MakieCore.AbstractPlot}}, ::AbstractVector, ::StatsBase.ECDF)
@ Makie ~/.julia/packages/Makie/QGPt0/src/stats/ecdf.jl:23
convert_arguments(::Union{Type{Any}, Type{<:MakieCore.AbstractPlot}}, ::Union{IntervalSets.Interval, AbstractVector}, ::Distributions.Distribution)
@ Makie ~/.julia/packages/Makie/QGPt0/src/stats/distributions.jl:21
...
Stacktrace:
[1] convert_arguments_individually(T::Type{MakieCore.Lines}, args::Vector{Vec{2}})
@ Makie ~/.julia/packages/Makie/QGPt0/src/conversions.jl:47
[2] convert_arguments(T::Type{MakieCore.Lines}, args::Vector{Vec{2}}; kw::@Kwargs{})
@ Makie ~/.julia/packages/Makie/QGPt0/src/conversions.jl:14
[3] convert_arguments(T::Type{MakieCore.Lines}, args::Vector{Vec{2}})
@ Makie ~/.julia/packages/Makie/QGPt0/src/conversions.jl:7
[4] (MakieCore.Lines)(args::Tuple{Observables.Observable{Vector{Vec{2}}}}, plot_attributes::Dict{Symbol, Any})
@ Makie ~/.julia/packages/Makie/QGPt0/src/interfaces.jl:139
[5] _create_plot!(F::Function, attributes::Dict{…}, scene::MakieCore.Plot{…}, args::Observables.Observable{…})
@ Makie ~/.julia/packages/Makie/QGPt0/src/figureplotting.jl:264
[6] lines!(::MakieCore.Plot{…}, ::Vararg{…}; kw::@Kwargs{…})
@ MakieCore ~/.julia/packages/MakieCore/UAwps/src/recipes.jl:176
[7] vizmesh1D!(plot::MakieCore.Plot{Meshes.viz, Tuple{SimpleMesh{2, Float32, Vector{…}, SimpleTopology{…}}}})
@ MeshesMakieExt ~/.julia/dev/Meshes/ext/simplemesh.jl:47
[8] plot!(plot::MakieCore.Plot{Meshes.viz, Tuple{SimpleMesh{2, Float32, Vector{Point2f}, SimpleTopology{Connectivity{…}}}}})
@ MeshesMakieExt ~/.julia/dev/Meshes/ext/simplemesh.jl:11
[9] connect_plot!(parent::MakieCore.Plot{Meshes.viz, Tuple{…}}, plot::MakieCore.Plot{Meshes.viz, Tuple{…}})
@ Makie ~/.julia/packages/Makie/QGPt0/src/interfaces.jl:255
[10] plot!(scene::MakieCore.Plot{Meshes.viz, Tuple{GeometrySet{…}}}, plot::MakieCore.Plot{Meshes.viz, Tuple{SimpleMesh{…}}})
@ Makie ~/.julia/packages/Makie/QGPt0/src/interfaces.jl:260
[11] _create_plot!(F::Function, attributes::Dict{…}, scene::MakieCore.Plot{…}, args::Observables.Observable{…})
@ Makie ~/.julia/packages/Makie/QGPt0/src/figureplotting.jl:265
[12] viz!(::MakieCore.Plot{…}, ::Vararg{…}; kw::@Kwargs{…})
@ MeshesMakieExt ~/.julia/packages/MakieCore/UAwps/src/recipes.jl:176
[13] vizmany!(plot::MakieCore.Plot{Meshes.viz, Tuple{GeometrySet{…}}}, objs::Observables.Observable{Vector{SimpleMesh{…}}})
@ MeshesMakieExt ~/.julia/dev/Meshes/ext/utils.jl:29
[14] vizgset1D!(plot::MakieCore.Plot{Meshes.viz, Tuple{GeometrySet{…}}}, geoms::Observables.Observable{Vector{Segment{…}}})
@ MeshesMakieExt ~/.julia/dev/Meshes/ext/geometryset.jl:88
[15] plot!(plot::MakieCore.Plot{Meshes.viz, Tuple{GeometrySet{2, Float32, Segment{2, Float32}}}})
@ MeshesMakieExt ~/.julia/dev/Meshes/ext/geometryset.jl:28
[16] connect_plot!(parent::Makie.Scene, plot::MakieCore.Plot{Meshes.viz, Tuple{GeometrySet{2, Float32, Segment{…}}}})
@ Makie ~/.julia/packages/Makie/QGPt0/src/interfaces.jl:255
[17] plot!
@ Makie ~/.julia/packages/Makie/QGPt0/src/interfaces.jl:260 [inlined]
[18] plot!(ax::Makie.Axis, plot::MakieCore.Plot{Meshes.viz, Tuple{GeometrySet{2, Float32, Segment{2, Float32}}}})
@ Makie ~/.julia/packages/Makie/QGPt0/src/figureplotting.jl:291
[19] plot!(fa::Makie.FigureAxis, plot::MakieCore.Plot{Meshes.viz, Tuple{GeometrySet{2, Float32, Segment{2, Float32}}}})
@ Makie ~/.julia/packages/Makie/QGPt0/src/figureplotting.jl:288
[20] _create_plot(F::Function, attributes::Dict{Symbol, Any}, args::Vector{Segment{2, Float32}})
@ Makie ~/.julia/packages/Makie/QGPt0/src/figureplotting.jl:250
[21] viz(args::Vector{Segment{2, Float32}})
@ MeshesMakieExt ~/.julia/packages/MakieCore/UAwps/src/recipes.jl:175
[22] top-level scope
@ REPL[47]:1
caused by: MethodError: no method matching convert_arguments(::MakieCore.PointBased, ::Vector{Vec{2}})
Closest candidates are:
convert_arguments(::MakieCore.PointBased, ::AbstractArray, ::AbstractVector, ::AbstractArray)
@ Makie ~/.julia/packages/Makie/QGPt0/src/conversions.jl:112
convert_arguments(::MakieCore.PointBased, ::AbstractArray, ::AbstractMatrix, ::AbstractArray)
@ Makie ~/.julia/packages/Makie/QGPt0/src/conversions.jl:120
convert_arguments(::MakieCore.PointBased, ::Makie.BezierPath)
@ Makie ~/.julia/packages/Makie/QGPt0/src/conversions.jl:274
...
Stacktrace:
[1] convert_arguments(T::Type{MakieCore.Lines}, args::Vector{Vec{2}}; kw::@Kwargs{})
@ Makie ~/.julia/packages/Makie/QGPt0/src/conversions.jl:10
[2] convert_arguments(T::Type{MakieCore.Lines}, args::Vector{Vec{2}})
@ Makie ~/.julia/packages/Makie/QGPt0/src/conversions.jl:7
[3] (MakieCore.Lines)(args::Tuple{Observables.Observable{Vector{Vec{2}}}}, plot_attributes::Dict{Symbol, Any})
@ Makie ~/.julia/packages/Makie/QGPt0/src/interfaces.jl:139
[4] _create_plot!(F::Function, attributes::Dict{…}, scene::MakieCore.Plot{…}, args::Observables.Observable{…})
@ Makie ~/.julia/packages/Makie/QGPt0/src/figureplotting.jl:264
[5] lines!(::MakieCore.Plot{…}, ::Vararg{…}; kw::@Kwargs{…})
@ MakieCore ~/.julia/packages/MakieCore/UAwps/src/recipes.jl:176
[6] vizmesh1D!(plot::MakieCore.Plot{Meshes.viz, Tuple{SimpleMesh{2, Float32, Vector{…}, SimpleTopology{…}}}})
@ MeshesMakieExt ~/.julia/dev/Meshes/ext/simplemesh.jl:47
[7] plot!(plot::MakieCore.Plot{Meshes.viz, Tuple{SimpleMesh{2, Float32, Vector{Point2f}, SimpleTopology{Connectivity{…}}}}})
@ MeshesMakieExt ~/.julia/dev/Meshes/ext/simplemesh.jl:11
[8] connect_plot!(parent::MakieCore.Plot{Meshes.viz, Tuple{…}}, plot::MakieCore.Plot{Meshes.viz, Tuple{…}})
@ Makie ~/.julia/packages/Makie/QGPt0/src/interfaces.jl:255
[9] plot!(scene::MakieCore.Plot{Meshes.viz, Tuple{GeometrySet{…}}}, plot::MakieCore.Plot{Meshes.viz, Tuple{SimpleMesh{…}}})
@ Makie ~/.julia/packages/Makie/QGPt0/src/interfaces.jl:260
[10] _create_plot!(F::Function, attributes::Dict{…}, scene::MakieCore.Plot{…}, args::Observables.Observable{…})
@ Makie ~/.julia/packages/Makie/QGPt0/src/figureplotting.jl:265
[11] viz!(::MakieCore.Plot{…}, ::Vararg{…}; kw::@Kwargs{…})
@ MeshesMakieExt ~/.julia/packages/MakieCore/UAwps/src/recipes.jl:176
[12] vizmany!(plot::MakieCore.Plot{Meshes.viz, Tuple{GeometrySet{…}}}, objs::Observables.Observable{Vector{SimpleMesh{…}}})
@ MeshesMakieExt ~/.julia/dev/Meshes/ext/utils.jl:29
[13] vizgset1D!(plot::MakieCore.Plot{Meshes.viz, Tuple{GeometrySet{…}}}, geoms::Observables.Observable{Vector{Segment{…}}})
@ MeshesMakieExt ~/.julia/dev/Meshes/ext/geometryset.jl:88
[14] plot!(plot::MakieCore.Plot{Meshes.viz, Tuple{GeometrySet{2, Float32, Segment{2, Float32}}}})
@ MeshesMakieExt ~/.julia/dev/Meshes/ext/geometryset.jl:28
[15] connect_plot!(parent::Makie.Scene, plot::MakieCore.Plot{Meshes.viz, Tuple{GeometrySet{2, Float32, Segment{…}}}})
@ Makie ~/.julia/packages/Makie/QGPt0/src/interfaces.jl:255
[16] plot!
@ Makie ~/.julia/packages/Makie/QGPt0/src/interfaces.jl:260 [inlined]
[17] plot!(ax::Makie.Axis, plot::MakieCore.Plot{Meshes.viz, Tuple{GeometrySet{2, Float32, Segment{2, Float32}}}})
@ Makie ~/.julia/packages/Makie/QGPt0/src/figureplotting.jl:291
[18] plot!(fa::Makie.FigureAxis, plot::MakieCore.Plot{Meshes.viz, Tuple{GeometrySet{2, Float32, Segment{2, Float32}}}})
@ Makie ~/.julia/packages/Makie/QGPt0/src/figureplotting.jl:288
[19] _create_plot(F::Function, attributes::Dict{Symbol, Any}, args::Vector{Segment{2, Float32}})
@ Makie ~/.julia/packages/Makie/QGPt0/src/figureplotting.jl:250
[20] viz(args::Vector{Segment{2, Float32}})
@ MeshesMakieExt ~/.julia/packages/MakieCore/UAwps/src/recipes.jl:175
[21] top-level scope
@ REPL[47]:1
Some type information was truncated. Use `show(err)` to see complete types.