如何在R中分离两个图?

时间:2009-11-26 01:20:47

标签: r plot

每当我运行此代码时,第一个图将简单地覆盖前一个。在R中有没有办法分开得到两块地块?

plot(pc)
title(main='abc',xlab='xx',ylab='yy')

plot(pcs)
title(main='sdf',xlab='sdf',ylab='xcv')

6 个答案:

答案 0 :(得分:39)

如果您只想同时打开两个不同的绘图窗口,请使用dev.new,例如

plot(1:10)
dev.new()
plot(10:1)

如果你想在同一个窗口中绘制两个图,那么正如Shane所说,设置mfrow参数。

par(mfrow = c(2,1))
plot(1:10)
plot(10:1)

如果你想尝试一些更高级的东西,那么你可以看一下格子图形或ggplot,这两者都非常适合创建条件图(不同帧中不同数据子集出现的情节)。

格子示例:

library(lattice)
dfr <- data.frame(
  x   = rep(1:10, 2), 
  y   = c(1:10, 10:1), 
  grp = rep(letters[1:2], each = 10)
)
xyplot(y ~ x | grp, data = dfr)

ggplot示例。 (您需要先从CRAN下载ggplot。)

library(ggplot2)
qplot(x, y, data = dfr, facets = grp ~ .)
#or equivalently
ggplot(dfr, aes(x, y)) + geom_point() + facet_grid(grp ~ .)

答案 1 :(得分:14)

在绘制之前尝试使用par

 par(mfrow = c(2, 1))

答案 2 :(得分:4)

您也可以尝试布局命令:

尝试        layout(1:2)

plot(A)    
plot(B)

答案 3 :(得分:2)

在每个情节之前尝试命令x11(),这是一个例子:

x11()
plot(1:10)
x11()
plot(rnorm(10))

这会导致不同的情节窗口。您可以将“par”命令添加到这些x11()窗口中的任何一个,并获得更多种类的图,即在一个窗口中有4个图,而在另一个窗口中有一个大图。

答案 4 :(得分:0)

如果您希望在单独的窗口或文件中使用2个绘图,则可以在调用每个绘图命令之前选择新设备。见:

  

?设备

  

?dev.cur

答案 5 :(得分:0)

另一个答案是将绘图指定为对象,然后您可以在需要时显示它 即

abcplot<-plot(pc) title(main='abc',xlab='xx',ylab='yy')

sdfplot<-plot(pcs) title(main='sdf',xlab='sdf',ylab='xcv')

abcplot # Displays the abc plot
sdfplot # Displays the sdf plot
abcplot # Displays the abc plot again