Uzyskaj szerokość obszaru wydruku w ggplot2

Czy istnieje sposób, aby uzyskać szerokość obszaru wydruku w oknie siatki? Na przykład rośnie lub kurczy się, jeśliplot.margin jest zmieniany lub jeśli rozmiar czcionki na osi Y jest zwiększany. Jest ukryty gdzieś w środkustr(p)?

Działałby dowolny rozmiar. Muszę być w stanie zmierzyć względną zmianę szerokości obszaru wydruku w różnych scenariuszach, takich jak zmiana rozmiaru czcionki na etykietach osi y.

df = data.frame(x = (1:3),One=c(12, 8, 13),Two=c(13, 7, 11),Three=c(11, 9, 11))
df.melt = melt(df, id.vars="x")

p = ggplot(df.melt, aes(x=x, y=value, color=variable)) + 
  geom_line() +
  coord_cartesian(xlim=c(min(df.melt$x),max(df.melt$x))) +
  theme(legend.position="none", plot.margin = unit(c(1, 4, 1, 1), "cm")) 
p

AKTUALIZACJA - Aby wyjaśnić: Pomóż mi obliczyća/b.

p = ggplot(df.melt, aes(x=x, y=value, color=variable)) + 
  geom_line() + coord_cartesian(xlim=c(min(df.melt$x),max(df.melt$x))) +
  theme(legend.position="none")

p1 = p + theme(plot.margin=unit(c(1,1,1,1),"cm"), axis.text.y=element_text(size=10))
p2 = p + theme(plot.margin=unit(c(1,1,1,2),"cm"), axis.text.y=element_text(size=30))
grid.arrange(p1, p2, ncol=2)

questionAnswers(3)

yourAnswerToTheQuestion