我使用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()