每当我运行此代码时,第一个图将简单地覆盖前一个。在R中有没有办法分开得到两块地块?
plot(pc)
title(main='abc',xlab='xx',ylab='yy')
plot(pcs)
title(main='sdf',xlab='sdf',ylab='xcv')
答案 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