* group with named tuples * comma
This commit is contained in:
parent
c4bac660cf
commit
7c257a09f6
19
src/args.jl
19
src/args.jl
@ -1012,15 +1012,28 @@ function extractGroupArgs(v::AVec, args...; legendEntry = string)
|
|||||||
GroupBy(map(legendEntry, groupLabels), groupIds)
|
GroupBy(map(legendEntry, groupLabels), groupIds)
|
||||||
end
|
end
|
||||||
|
|
||||||
legendEntryFromTuple(ns::Tuple) = string(("$n " for n in ns)...)
|
legendEntryFromTuple(ns::Tuple) = join(ns, ' ')
|
||||||
|
|
||||||
# this is when given a tuple of vectors of values to group by
|
# this is when given a tuple of vectors of values to group by
|
||||||
function extractGroupArgs(vs::Tuple, args...)
|
function extractGroupArgs(vs::Tuple, args...)
|
||||||
(vs == ()) && return GroupBy([""], [1:size(args[1],1)])
|
isempty(vs) && return GroupBy([""], [1:size(args[1],1)])
|
||||||
v = collect(zip(vs...))
|
v = map(tuple, vs...)
|
||||||
extractGroupArgs(v, args...; legendEntry = legendEntryFromTuple)
|
extractGroupArgs(v, args...; legendEntry = legendEntryFromTuple)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
# allow passing NamedTuples for a named legend entry
|
||||||
|
@require NamedTuples begin
|
||||||
|
legendEntryFromTuple(ns::NamedTuples.NamedTuple) =
|
||||||
|
join(["$k = $v" for (k, v) in zip(keys(ns), values(ns))], ", ")
|
||||||
|
|
||||||
|
function extractGroupArgs(vs::NamedTuples.NamedTuple, args...)
|
||||||
|
isempty(vs) && return GroupBy([""], [1:size(args[1],1)])
|
||||||
|
NT = eval(:(NamedTuples.@NT($(keys(vs)...)))){map(eltype, vs)...}
|
||||||
|
v = map(NT, vs...)
|
||||||
|
extractGroupArgs(v, args...; legendEntry = legendEntryFromTuple)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
# expecting a mapping of "group label" to "group indices"
|
# expecting a mapping of "group label" to "group indices"
|
||||||
function extractGroupArgs(idxmap::Dict{T,V}, args...) where {T, V<:AVec{Int}}
|
function extractGroupArgs(idxmap::Dict{T,V}, args...) where {T, V<:AVec{Int}}
|
||||||
groupLabels = sortedkeys(idxmap)
|
groupLabels = sortedkeys(idxmap)
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user