在R中创建一系列图形

时间:2012-07-18 14:09:11

标签: r graph plot

我有一系列三个相似的图表,我想在R ...的单个窗口中显示。

这是数据:

Date Tank Time Female.in.Middle Female.in.R.assoc Female.in.L.assoc R.side.of.divider
117 25-Jun   I3  200           0.0966            0.2721            0.2001            0.0000
120 26-Jun   I3 1030           0.2118            0.5663            0.2212            0.0000
123 27-Jun   I3  200           0.0000            0.0000            0.0000            0.0000
128 28-Jun   I3 1100           0.0237            0.0672            0.1408            0.3289
129 28-Jun   I3  230           0.0683            0.0606            0.2488            0.0000
132 29-Jun   I3  200           0.1823            0.1180            0.6990            0.0000
135  2-Jul   I3  200           0.0000            0.0000            0.0000            0.0000
138  3-Jul   I3 1030           0.0000            0.0000            0.0000            0.0000
    L.side.of.Divider Tank.1 Date.Entered M.L.name Male.L.Length Male.L.Weight M.R.name
117            0.4285     I3       22-Jun  green 2           7.6         14.32   pink 1
120            0.0000     I3       22-Jun  green 2           7.6         14.32   pink 1
123            0.9961     I3       22-Jun  green 2           7.6         14.32   pink 1
128            0.4423     I3       22-Jun  green 2           7.6         14.32   pink 1
129            0.6215     I3       22-Jun  green 2           7.6         14.32   pink 1
132            0.0000     I3       22-Jun  green 2           7.6         14.32   pink 1
135            0.9952     I3       22-Jun  green 2           7.6         14.32   pink 1
138            0.9948     I3       22-Jun  green 2           7.6         14.32   pink 1
    Male.R.Length Male.R.Weight Side.of.Spawn F.Length F.Weight F.name last.female.spawn.date
117           7.7         14.79             L      5.5     5.64     2c                 22-Jun
120           7.7         14.79             L      5.5     5.64     2c                 22-Jun
123           7.7         14.79             L      5.5     5.64     2c                 22-Jun
128           7.7         14.79             L      5.5     5.64     2c                 22-Jun
129           7.7         14.79             L      5.5     5.64     2c                 22-Jun
132           7.7         14.79             L      5.5     5.64     2c                 22-Jun
135           7.7         14.79             L      5.5     5.64     2c                 22-Jun
138           7.7         14.79             L      5.5     5.64     2c                 22-Jun
    spawn.date.in.paradigm  X d.in.p dbs X.1 X.2 X.3
117                  3-Jul 11      3   8  NA  NA  NA
120                  3-Jul 11      4   7  NA  NA  NA
123                  3-Jul 11      5   6  NA  NA  NA
128                  3-Jul 11      6   5  NA  NA  NA
129                  3-Jul 11      6   5  NA  NA  NA
132                  3-Jul 11      7   4  NA  NA  NA
135                  3-Jul 11     10   1  NA  NA  NA
138                  3-Jul 11     11   0  NA  NA  NA

我正在使用此代码制作图表:

d2c<-plot(jd2c$d.in.p, jd2c$L.side.of.Divider, type='l', col='purple', xlab='Days After Entry', ylab='Proportion of Time Spent on Each Side of Divider', main='Female 2c', ylim=c(0,1))
legend('topleft',.8,c('Left', 'Right'),pch=c(.8), col=c('purple','green'))
points(jd2c$d.in.p, jd2c$R.side.of.divider, type='l', col='green')


az2c<-plot(jd2c$d.in.p, jd2c$Female.in.L.assoc, type='l', col='purple', xlab='Days After Entry', ylab='Proportion of Time Spent in Assoc. Zones', main='Female 2c', ylim=c(0,1))
legend('topleft',.8,c('Left', 'Right'),pch=c(.8), col=c('purple','green'))
points(jd2c$d.in.p, jd2c$Female.in.R.assoc, type='l', col='green')


rside2c<-cbind(jd2c$Female.in.R.assoc + jd2c$R.side.of.divider)
lside2c<-cbind(jd2c$Female.in.L.assoc + jd2c$L.side.of.Divider)

side2c<-plot(jd2c$d.in.p, lside2c, type='l', col='purple', xlab='Days After Entry', ylab='Proportion of Time Spent on Each Side (cumulative)', main='Female 2c', ylim=c(0,1))
legend('topleft',.8,c('Left', 'Right'),pch=c(.8), col=c('purple','green'))
points(jd2c$d.in.p, rside2c, type='l', col='green')

如何在一个窗口中显示所有三个图形?

谢谢!

3 个答案:

答案 0 :(得分:1)

您需要使用par

# Put this before your plots:
par(mfrow=c(3,1))  # your plots appear in one column, three rows,
                   # in one figure.
plot(...)
plot(...)
plot(...)
par(mfrow=c(1,1))  # always a good idea to return it to how it was
                   # afterwards, so later plots aren't affected

答案 1 :(得分:0)

目前还不清楚你是如何看待这三个图形的,但一个简单的解决方案就是在图形前面加上......

par(mfrow = c(1,3))

现在,您将在一个窗口中看到所有三个图形。当然,你需要让窗户变宽。否则图表将全部压扁。您需要查找?Devices以获取所需的特定输出。如果您只是希望它出现在屏幕上,那么Linux上的X11或Mac OS X上的quartz将起作用。例如,在Mac上调用...

quartz('my new graph', 15, 5)

这将创造一个空间,以高达3倍的宽度绘制。无论何时进行初始绘图调用,它都会自动隐式调用,尺寸为7“。

您应该在帮助中查找par。保存当前设置然后稍后恢复它们也是一个很好的建议。所以,在使用图表之前......

opar <- par(mfrow = c(1,3))

然后在你的图表之后

par(opar)

即使您对图形参数进行了很多更改,这也是一种简单的方法。

答案 2 :(得分:0)

其他人提到parmfrow,如果您想要更多地控制绘图区域的位置,大小和形状,也可以使用layout函数。