【发布时间】:2014-06-16 00:30:32
【问题描述】:
我有 2 个数据框,mydf1 和 mydf2
> mydf1
id a b c
1 1 2 10 2
2 2 3 11 4
3 3 5 12 6
4 4 7 13 8
5 5 8 14 10
> mydf2
id a b c
1 1 4 20 4
2 2 6 22 8
3 3 10 24 12
4 4 14 26 16
5 5 16 28 20
我想根据 id 绘制变量 a、b 和 c(示例图如下所示)。 我也想要变量 b 和 c 的类似图表,我想循环执行,然后将其导出到本地文件夹。所以,我使用以下代码
for (i in 2:4) {
jpeg(paste("C:/Data/myplot",i,".jpg"))
ymin<-min(mydf1[,i],mydf2[,i])
ymax<-max(mydf1[,i],mydf2[,i])
plot(mydf1[,1],mydf1[,i],ylim=c(ymin,ymax),xlab="id",ylab=colnames(mydf)[i])
points(mydf2[,1],mydf2[,i],pch=2)
legend("topright",c("mydf1","mydf2"),pch=c(1,2))
dev.off()
}
我的问题是 我想在一个图中获得所有三个不同的图表,(id vs a (mydf1 and mydf2) , id vs b(mydf1 and mydf2), id vs c(mydf1 and mydf2) .(如图第一行的 2 和第二行的第三个图例) 我尝试了以下
jpeg("C:/Data/myplot.jpg")
par(mfrow=c(2,2))
for (i in 2:4) {
ymin<-min(mydf1[,i],mydf2[,i])
ymax<-max(mydf1[,i],mydf2[,i])
plot(mydf1[,1],mydf1[,i],ylim=c(ymin,ymax),xlab="id",ylab=colnames(mydf)[i])
points(mydf2[,1],mydf2[,i],pch=2)
legend("topright",c("mydf1","mydf2"),pch=c(1,2))
dev.off()
}
但它没有用。有什么建议吗? ps:这是我的任务的简化版本。实际上我有数百列,这就是我使用循环操作的原因
样图id vs a (mydf1 and mydf2)绘制在同一张图上
【问题讨论】:
-
为什么不多用几次
points? -
抱歉问题不清楚。我现在已经编辑过了。我希望我的问题现在很清楚