Вы можете добавить текст и графику с помощью grobs .Прежде всего, вам нужно немного свободного места с правой стороны.Это возможно, когда вы тратите наценку на свои темыКоманда здесь: theme(plot.margin = unit(c(1,5,1,1),"cm"))
, после чего вам нужно объявить, что вы хотите вставить.
График с увеличенным полем (хорошо, так как фон белый, на самом деле невозможно увидеть увеличенное поле ...но он есть):
В вашем случае я вставил таблицу, так как это проще.Вы можете вставить текст, таблицы или фигуры с помощью grobs
.Давайте сначала определим таблицу:
mytable<-cbind(c("variable_1","variable_2","variable_3"),c(0.5,1.5,3.5))
с annotion_costum()
ggplot позволяет вставлять объекты в виде графики на графиках.Поскольку наша маржа достаточно высока, вы можете добавить таблицу за пределы графика.
График с добавленной таблицей:
Как и в прошломшаг я нарисовал прямоугольник вокруг стола.Полный код:
library(gridExtra)
library(grid)
A <- c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
B <- c(10, 9, 8, 7, 6, 5, 4, 3, 2, 1)
C <- data.frame(A, B)
mytable<-cbind(c("variable_1","variable_2","variable_3"),c(0.5,1.5,3.5))
ggplot(data = C) + geom_point(mapping = aes(x = A, y = B)) +
labs(title = "Plot") + theme(plot.title = element_text(hjust = 0.5))+
theme(plot.margin = unit(c(1,5,1,1),"cm"))+
annotation_custom(tableGrob(mytable, rows=NULL),
xmin=unit(11.5,"npc"),xmax = unit(14,"npc"), ymin=3.7, ymax=7)
grid.rect(x=unit(0.83,"npc"),y=unit(0.5,"npc") ,width = unit(0.22,"npc"), height = unit(0.16,"npc"), gp = gpar(lwd = 3, col="black", fill = NA))
Окончательное изображение: