获取当前的ggplot对象

mat*_*fee 2 r ggplot2

假设我绘制了这样的东西:

ggplot(iris, aes(x=Sepal.Length, y=Petal.Length)) + geom_point()
Run Code Online (Sandbox Code Playgroud)

然后我意识到我忘了存储结果(即ggplot对象).

如何检索当前设备对应的ggplot对象?

是否有一些ggplot功能我可以cur.dev()用来检索相关的绘图对象,还是它永远消失了?

(注意 - 在这种情况下我可以这样做p <- .Last.value,但我们假设我从那时起输入了一些命令,因此无法使用.

动机 - 添加一个钩子以knitr自动设置fig.cap为剧情的标题(如果有的话).

mne*_*nel 9

你是在追求 last_plot

它检索要修改或创建的最后一个绘图并由其使用 ggsave

请注意,它是修改 创建的最后一个图

set_last_plot 是相关代码(参见来源)

重要的是要注意,创建修改或渲染ggplot对象将设置最后一个绘图.

ggplot(iris, aes(x=Sepal.Length, y=Petal.Length)) + geom_point()
f <- last_plot()
# will return the iris plot
p <- ggplot(mtcars, aes(x = wt, y = mpg)) + geom_point()
last_plot()
# will return p
f
last_plot() 
# is now f
Run Code Online (Sandbox Code Playgroud)

它也不会计算任何修改/操纵使用gridgridExtra(例如grid.arrange/grid.text

  • 如果你想在显示列表中实际注册的最新ggplot(以及任何进一步的网格注释),你可以使用`grid.grab` (2认同)