无法在函数内调用last_plot和grid.text

时间:2017-10-21 09:55:26

标签: r ggplot2

我使用ggplot2为我的公司开发了一个特定的主题,我需要调整绘图边距,具体取决于grid.text中的字体大小。

我的想法是创建一个函数,我调用last_plot(),调整plot.margin,然后添加一些grid.text()函数。但是,不知怎的,我无法使这个最小的代码示例正常运行:

library(ggplot2)
library(grid)

ggplot(diamonds, aes(x = cut, fill = cut)) + 
  geom_bar()

addText <- function(){
  last_plot() %+% theme(plot.margin = margin(0.30, 0, 0, 0, "npc"))
  grid.text("Something", y = unit(0.90, "npc"))
}

addText()

有谁知道这里的问题是什么? grid.text()被调用,但R只是忽略last_plot() %+% theme(plot.margin = margin(0.30, 0, 0, 0, "npc"))

编辑:

问题是print()丢失了。现在这个例子有效:

library(ggplot2)
library(grid)

ggplot(diamonds, aes(x = cut, fill = cut)) + 
  geom_bar()

addText <- function(){
  print(last_plot() + theme(plot.margin = margin(0.30, 0, 0, 0, "npc")))
  grid.text("Something", y = unit(0.90, "npc"))
}

addText()

0 个答案:

没有答案