Я хотел бы пометить свою фасетную сетку заголовком ("ID", как показано ниже), используя рекомендации, приведенные в этот пост, но я не понимаю, как возиться с параметрами Grob настолько, чтобы адаптировать код к моему конкретному случаю (не из-за отсутствия усилий). Я хотел бы разместить дополнительную метку поверх сетки фасетов, но, как вы видите, метка не покрывает всю ось X. Может ли кто-нибудь объяснить мне, как соответствующим образом настроить этот код? Я хотел бы понять, на что на самом деле ссылаются параметры grob, чтобы я мог настроить код самостоятельно, а не копировать/вставлять. Большое спасибо.
The code I used:
p<-ggplot(data=ex)+
geom_linerange(data=subset(ex11, detect=="fronts"), aes(x=value, ymin=start,ymax=end, color=hist,linetype="Active fronts"))+
geom_point(data=subset(ex11, detect=="rings"), aes(x=value, y=day, color=hist))+
coord_flip() +
labs(color="")+
labs(linetype="")+
labs(size="")+
facet_wrap(~ zid)
require(gtable)
# get gtable object
z <- ggplot_gtable(ggplot_build(p))
# add label for top strip
z <- gtable_add_rows(z, z$heights[[3]], 2)
z <- gtable_add_grob(z,
list(rectGrob(gp = gpar(col = NA, fill = gray(0.5))),
textGrob("ID", gp = gpar(col = gray(1)))),
3, 4, 3, 6, name = paste(runif(2)))
# add margins
z <- gtable_add_cols(z, unit(1/8, "line"), 7)
z <- gtable_add_rows(z, unit(1/8, "line"), 3)
# draw it
grid.newpage()
grid.draw(z)
Подмножество моих данных:
structure(list(zid = c(53L, 53L, 53L, 53L, 53L, 53L, 0L, 1L,
5L, 7L, 8L, 9L), hist = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 2L,
1L, 1L, 1L, 1L, 1L), .Label = c("NPB", "PB"), class = "factor"),
value = c(333, 333, 748, 514, 412, 355, 268.125, 299.25,
336.625, 255.69, 225.44, 229.31), day = c(268L, 269L, 270L,
271L, 272L, 273L, NA, NA, NA, NA, NA, NA), detect = structure(c(2L,
2L, 2L, 2L, 2L, 2L, 1L, 1L, 1L, 1L, 1L, 1L), .Label = c("fronts",
"rings"), class = "factor"), start = c(NA, NA, NA, NA, NA,
NA, 238L, 254L, 262L, 254L, 254L, 254L), end = c(NA, NA,
NA, NA, NA, NA, 246L, 262L, 270L, 270L, 270L, 270L)), .Names = c("zid",
"hist", "value", "day", "detect", "start", "end"), class = "data.frame", row.names = c(NA,
-12L))
p
помочь. - person hrbrmstr   schedule 14.09.2015gtable_add_grob
: 3, 4, 3 и 6. Они представляют соответственно верхний, левый, нижний и правый экстенты гроба, добавляемого к макету. 6 это проблема. Проверьте макет -gtable_show_layout(z)
. - person Sandy Muspratt   schedule 14.09.2015