用一个函数绘制多个个体?

时间:2013-05-17 14:29:17

标签: r plot scatter-plot

你能帮我解决一下这个问题:

我有一个如下数据库:

Animal  Milk    Age
1   11.96703591 1
1   13.41236333 2
1   14.85769075 3
1   16.30301817 4
2   17.74834559 1
2   19.08465881 2
2   20.42097204 3
2   14.66094662 4
2   14.70197368 5
3   14.74300075 1
3   14.78402781 2
3   14.82505488 3
3   14.86608194 4
3   14.90710901 5

我想在牛奶与年龄之间做一个情节,所以我使用功能图(Milk~Ege,data = mydata) 我的问题是如何通过仅使用一个函数为每个人制作相同的情节(Milk~Age)。因为我有大约200只动物,如果我必须运行200次以产生200条曲线。

由于 PHUONG

3 个答案:

答案 0 :(得分:2)

一种方法是使用库ggplot2,然后为每只动物制作单独的方面。由于你有很多动物,你可以在ncol=中更改nrow=facet_wrap()以获得更好的视野。

library(ggplot2)
ggplot(df,aes(x=Age,y=Milk))+geom_point()+facet_wrap(~Animal)

enter image description here

答案 1 :(得分:1)

以下代码应创建与您具有唯一Animal值的绘图一样多的绘图,并将它们存储在工作目录中的不同pdf文件中:

invisible(by(df, df$Animal, function(tmpdf) {
    pdf(paste0("plot",tmpdf$Animal[1],".pdf"))
    plot(Milk~Age, data=tmpdf, main=tmpdf$Animal[1])
    dev.off()
}))

答案 2 :(得分:0)

我想说使用ggplot2包中的ggplot

ggplot(df,aes(x=Age,y=Milk, color=Animal))+geom_point() 

edit1:实际上这会让200只动物失去清晰度。您是希望所有这些数据点都放在一个图表中还是分布在200个图表中?如果是后者,那么我同意Didzis