将ggplot的输出嵌入到另一个图中

时间:2014-06-27 18:10:46

标签: r ggplot2

我正在尝试绘制两个连续变量的散点图和方框图,但我得到的错误是,

警告讯息: 在par(fig = c(0,0.8,0.55,1),new = TRUE):   调用par(new = TRUE),没有情节

当我简单地将代码的第4-6行替换为:

时,代码工作正常
plot(mydata$gre, mydata$gpa, xlab="GRE",ylab="GPA")

这是我的代码:

mydata <- read.csv("http://www.ats.ucla.edu/stat/data/binary.csv")
par(fig=c(0,0.8,0,0.8), new=TRUE)
#plot(mydata$gre, mydata$gpa, xlab="GRE",ylab="GPA")
d<-ggplot(mydata,aes(x=mydata$gre, y=mydata$gpa))
d<-d+geom_line()
d
par(fig=c(0,0.8,0.55,1), new=TRUE)
boxplot(mydata$gre, horizontal=TRUE, axes=FALSE)
par(fig=c(0.65,1,0,0.8),new=TRUE)
boxplot(mydata$gpa, axes=FALSE)
mtext("Enhanced Scatterplot", side=3, outer=TRUE, line=-3)

由于R没有认识到,你能否就ggplot的错误做些解释?真正奇怪的是,当我输入d,我的ggplot的名字时,我得到了一个情节......

1 个答案:

答案 0 :(得分:0)

您正在尝试组合网格图(ggplot2)和基础图(boxplot),但这两种类型的绘图不能很好地一起播放(因此隐藏警告)。

最简单的解决方案是仅使用一个网格或基础图,通过调用绘图或其他函数(仅基本选项)替换对ggplot的调用,或使用基于网格的函数来执行框图(网格包也使用网格)然后使用网格包中的函数来排列多个图。

如果你真的想要组合网格和基础图,那么你可以使用gridBase包,但这需要很好地理解这两种类型的图形。