将基本 r 图保存为可以在多图中绘制的对象
saving a base r plot as an object that can be plotted in a multiplot
这个问题基于 ,它展示了如何使用 pryr
包中的 %<a-%
函数轻松地将绘图存储为 r
对象。伟大的!但是,我现在想创建一个将基本 r 图与 2 ggplot
个数字组合在一起的多图。我在下面使用 grid.arrange
。
使用基础 r cars
数据我可以制作两个 ggplot
数字。
library(ggplot2)
library(pryr)
library(gridExtra)
Fig1 <- qplot(speed, data=cars, geom="histogram")
Fig2 <- qplot(dist, speed, data=cars, geom="point")
然后我用 plot
制作了一个图形,并使用 pryr
包中的 %<a-%
函数将图形保存为一个对象。光滑。
Fig3 %<a-% plot(cars$speed, cars$dist)
Fig3
最后,我想将这 3 个数字组合成一个图,如下所示。
Figs <- grid.arrange(Fig1, Fig2, Fig3,
layout_matrix = rbind(c(1,1,1,2,2), c(1,1,1,2,2), c(3,3,3,3,3)))
代码产生以下错误:
Error in gList(list(grobs = list(list(x = 0.5, y = 0.5, width = 1, height = 1, :
only 'grobs' allowed in "gList"
如何保存基础 r
图以与其他 ggplot
图形组合?
正如@MrFlick 正确指出的那样, 是比不存储网格的 %<a-%
函数更好的方法。
下面的代码产生了预期的结果。
library(ggplot2)
library(gridExtra)
library(gridGraphics)
library(grid)
Fig1 <- qplot(speed, data=cars, geom="histogram")
Fig2 <- qplot(dist, speed, data=cars, geom="point")
plot(cars$speed, cars$dist)
grid.echo()
Fig3 <- grid.grab()
Figs <- grid.arrange(Fig1, Fig2, Fig3,
layout_matrix = rbind(c(1,1,1,2,2), c(1,1,1,2,2), c(3,3,3,3,3)))
这个问题基于 pryr
包中的 %<a-%
函数轻松地将绘图存储为 r
对象。伟大的!但是,我现在想创建一个将基本 r 图与 2 ggplot
个数字组合在一起的多图。我在下面使用 grid.arrange
。
使用基础 r cars
数据我可以制作两个 ggplot
数字。
library(ggplot2)
library(pryr)
library(gridExtra)
Fig1 <- qplot(speed, data=cars, geom="histogram")
Fig2 <- qplot(dist, speed, data=cars, geom="point")
然后我用 plot
制作了一个图形,并使用 pryr
包中的 %<a-%
函数将图形保存为一个对象。光滑。
Fig3 %<a-% plot(cars$speed, cars$dist)
Fig3
最后,我想将这 3 个数字组合成一个图,如下所示。
Figs <- grid.arrange(Fig1, Fig2, Fig3,
layout_matrix = rbind(c(1,1,1,2,2), c(1,1,1,2,2), c(3,3,3,3,3)))
代码产生以下错误:
Error in gList(list(grobs = list(list(x = 0.5, y = 0.5, width = 1, height = 1, :
only 'grobs' allowed in "gList"
如何保存基础 r
图以与其他 ggplot
图形组合?
正如@MrFlick 正确指出的那样,%<a-%
函数更好的方法。
下面的代码产生了预期的结果。
library(ggplot2)
library(gridExtra)
library(gridGraphics)
library(grid)
Fig1 <- qplot(speed, data=cars, geom="histogram")
Fig2 <- qplot(dist, speed, data=cars, geom="point")
plot(cars$speed, cars$dist)
grid.echo()
Fig3 <- grid.grab()
Figs <- grid.arrange(Fig1, Fig2, Fig3,
layout_matrix = rbind(c(1,1,1,2,2), c(1,1,1,2,2), c(3,3,3,3,3)))