Как рисовать линии за пределами области графика в ggplot2?

Я создал этот график с помощью ggplot2:

enter image description here

Внешние линии должны быть соответствуют масштабу Y (т. е. положение Y строк для Text1 должно быть 100 и 85). Единственный способ сделать это, нарисовав пустой график справа от рисунка с тем же масштабом, что и гистограмма, а затемиспользуя функцию аннотации для рисования линий. Другой подход состоит в том, чтобы просто «вручную» нарисовать линии с помощью grid.lines, однако координаты grid.linesне будут соответствовать шкале Y графика.

Можно ли как-то провести эти линии другим способом? Я предполагаю, что это нужно сделать с помощью grid.lines. Как передать координаты Y гистограммы в сетку .строки?

Ниже приведен минимальный код, используемый для создания этой фигуры:

library (ggplot2)
test= data.frame(
  group=c(rep(1,6), rep(2,6)),
  subgroup=c( 1,1,1,2,2,2,1,1,1,2,2,2),
  category=c( rep(1:3, 4)),
  count=c( 10,80,10,5,90,5,  10,80,10,5,90,5   )
  )

qplot(subgroup, 
      count, 
      data=test, 
      geom="bar", 
      stat="identity",
      fill =category,  
      facets =  .~ group,  width=0.9)+
      opts(legend.position="none",
           plot.margin = unit(c(0,9,2,0), "lines"))

enter image description here

Как нарисовать линии справа от полос?

Недавно я задал вопрос о рисовании текста вне области графика в ggplot2и решил использовать gt$layoutи grid.draw.

Отображение текста под графиком, сгенерированным ggplot2

Можно ли использовать подобный подход здесь? Насколько я понимаю, annotation_custom предназначен только для текста и не будет работать с другими графическими элементами. Спасибо

26
задан Community 23 May 2017 в 11:47
поделиться