#r #ggplot2 #graph #tidyverse
#r #ggplot2 #График #tidyverse
Вопрос:
У меня есть следующий код для графика
ggplot(na.omit(total), aes(x = day_after, y = use, group=t, na.rm=TRUE))
geom_line(aes(linetype=t, color=t, na.rm=TRUE))
geom_point(aes(color=t, na.rm = TRUE))
scale_color_manual(values=c("gray48", "indianred4"), labels=c("Treatment","Control"))
labs(x= "Days after beginning of deactivation period", y= "")
theme(panel.grid.minor = element_blank(),
panel.background = element_blank())
theme(panel.grid.major.x = element_blank(),
panel.grid.major.y = element_line( size=.1, color="grey"))
theme(legend.key=element_blank())
guides(linetype = FALSE)
annotate('segment',x = 0,xend = 0,y = 0,yend = 60,size = 3,colour = "grey",
alpha = 0.4)
annotate('segment',x = 7,xend = 7,y = 0,yend = 60,size = 3,colour = "grey",
alpha = 0.4)
annotate('segment',x = 39,xend = 39,y = 0,yend = 60,size = 3,colour = "grey",
alpha = 0.4)
new_plot <- plot theme(legend.title=element_blank(), legend.text = element_text(size=10),
legend.position = "right")
Что я хочу сделать, так это добавить вертикальный текст в верхней части графика с несколькими заданными значениями (x, y) вне графика.
Annotate_custom работает, но у него нет возможности поворачивать текст. В принципе, я попробовал annotation_custom(text_end,xmin=42,xmax=42,ymin=62,ymax=62)
Что было бы удивительно, только у меня не может быть такой опции, как angle = 90.
Любая помощь??
Ответ №1:
Вы можете использовать annotation_custom
, если отключите обрезку. Вы можете использовать пользовательский grid::textGrob
параметр для указания поворота.
У меня нет ваших данных, но примера с использованием встроенного mtcars
набора данных должно быть достаточно для иллюстрации.
library(ggplot2)
ggplot(mtcars, aes(disp, mpg))
geom_point()
geom_vline(xintercept = c(200, 400), size = 10, alpha = 0.05)
coord_cartesian(clip = "off")
theme_bw()
theme(plot.margin = margin(80, 20, 20, 20),
panel.border = element_blank())
annotation_custom(grid::textGrob("label 1", rot = 90),
xmin = 200, xmax = 200, ymin = 40)
annotation_custom(grid::textGrob("label 2", rot = 90),
xmin = 400, xmax = 400, ymin = 40)
Комментарии:
1. Спасибо!! но когда я это делаю, текст стирается, как только он выходит из графика…
2. Вы не забыли повернуть
clip = "off"
внутрьcoord_cartesian
?