我有以下数据:
x = structure(list(y1 = c(107.372719264016, 118.863299513623, 122.162515227,
111.233227509519, 92.1059066900521, 92.5830204386651, 94.5195626032137,
104.412959061795, 91.3601725324563, 109.253785952959, 178.771878945058,
144.951255075154, 155.596668292633, 174.961110441768, 120.832044563506,
136.643512128174, 135.187051040663, 180.285899983425, 158.394853261036,
159.408612698416, 210.922565904703, 200.637214897327, 212.170348364241,
189.17609660446, 196.488287848291, 190.289086295862, 209.437584230891,
213.663792465693, 212.051141677785, 178.19577259738), gp = c(1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3), y2 = c(23.4346699162695, 23.5659769309565,
25.6831595647438, 26.2750453870631, 27.4124437247719, 26.6151271841002,
18.3542500476327, 25.6479059225537, 22.7590841129755, 28.3977047665418,
49.5381487676808, 52.6323571458394, 52.0978945491726, 47.9337311261507,
40.2061776362212, 59.8929725029682, 55.0611040997365, 54.3854566071441,
45.3167212599129, 49.4203766938382, 65.3710290649776, 83.0698942827895,
89.5332774858779, 71.9625027199287, 85.8762119093763, 69.1433238492174,
84.390713674473, 83.6843406930946, 75.1866926526086, 80.4928087390204
)), .Names = c("y1", "gp", "y2"), row.names = c(NA, -30L), class = "data.frame")
>
> head(x)
y1 gp y2
1 107.37272 1 23.43467
2 118.86330 1 23.56598
3 122.16252 1 25.68316
4 111.23323 1 26.27505
5 92.10591 1 27.41244
6 92.58302 1 26.61513
>
>
> plotmeans(x$y1~x$gp)
> plotmeans(x$y2~x$gp)
我想在一个图上用相同的组列绘制2列的平均值。我可以制作2块地块,但我怎样才能将它们放在一块地块上?我不想要par(mfrow ..)函数,但想要在同一个图上使用相同y轴的两个图。 'plotmeans'功能在gplots包中。谢谢你的帮助。
答案 0 :(得分:2)
一般来说,你可以这样做:
plotmeans(x$y1~x$gp,ylim=c(0,220))
plotmeans(x$y2~x$gp,add=TRUE)
会返回警告(您可以忽略),因为add=TRUE
参数会传递给plot()
(不使用它)和plotCI()
(它确实使用它) )。在您的数据的特定情况下,您会收到额外的警告,因为置信区间太小而无法正确绘制 - 您可以通过绘制对数刻度来绘制圆形,或者如果对数据有意义则使用较小的y范围 - 既不其中对我来说特别好:
#Smaller y range
plotmeans(x$y1~x$gp,ylim=c(60,120))
plotmeans(x$y2~x$gp,add=TRUE)
#log scale
plotmeans(x$y1~x$gp,ylim=c(20,220),log='y')
plotmeans(x$y2~x$gp,add=TRUE)
如果这些都不令人满意,您可以尝试绘制到2000x2000像素的设备 - 例如
png("file.png",2000,2000)
plotmeans(x$y1~x$gp,ylim=c(0,220))
plotmeans(x$y2~x$gp,add=TRUE)
dev.off()
足够大,可以正确显示错误条。