Как получить размер внутреннего графика ggplot2 и длину полей - PullRequest
0 голосов
/ 05 мая 2020

Я работаю над пользовательскими элементами ggplot2 и хочу вычислить размер фактического графика без полей.

Предположим, что этот график

ggplot(mtcars, aes(x = cyl, y = hp )) + geom_point() + ggtitle('test') + theme_bw()

Мне нужно получить длину (относительную или абсолютный) полей (см. красные линии) или каким-то образом размер графика и его относительное положение относительно верхнего левого угла.

enter image description here

Это есть ли способ получить эту информацию из объекта ggplot2?

1 Ответ

1 голос
/ 05 мая 2020

Это помогает?

library(ggplot2)

p1 <- 
  ggplot(mtcars, aes(x = cyl, y = hp )) + geom_point() + ggtitle('test') + theme_bw()

#retrieve plot margin information
p1$theme$plot.margin

#Gives you:    

    p1$theme$plot.margin
    ## [1] 5.5pt 5.5pt 5.5pt 5.5pt



p2 <- 
  p1 +
  theme(plot.margin = margin(1, 2, 3, 4, "cm"))

p2$theme$plot.margin

# gives you:

    p2$theme$plot.margin
    ## [1] 1cm 2cm 3cm 4cm


...