Объединение Grobs в сетке R - PullRequest
0 голосов
/ 23 апреля 2020

Моя цель - создать собственную легенду с использованием базовых c функций сетки, которые я затем хотел бы поместить в какой-либо видовой экран.

Моя неудачная попытка выглядит примерно так:

label         <- c('2012/13', '2013/14', '2014/15', '2015/16', '2016/17')
farbe         <- c('red', 'blue', 'green', 'red', 'cyan') 
circle_sep    <- unit(1, 'mm')
entry_sep     <- unit(3, 'mm')
circle_radius <- unit(1, 'mm')


circle_pos <- unit(0, 'npc')
text_pos   <- unit(0, 'npc')
for (i in seq_along(label))
{
    ## Sumbol
    grid.circle(x = circle_pos,
                y = unit(0.5, 'npc'),
                r = circle_radius,
                gp = gpar(fill=farbe[i]))

    text_pos <- circle_pos + circle_radius + circle_sep

    ## Text:
    grid.text(label = label[i],
              x = text_pos,
              y = unit(0.5, 'npc'),
              just = c('left', 'center'))

    circle_pos <- text_pos + unit(1, 'strwidth', data = label[i]) + entry_sep
}

enter image description here

Есть ли способ сгруппировать полученное изображение в один Grob, который поддерживает такие вещи, как grobWidth, grobHeight и т. Д.? Если нет, то каков будет хороший и эффективный способ реализовать что-то подобное?

Заранее спасибо!

...