ggplot2中的多列图几乎相同

时间:2013-03-18 16:19:54

标签: r statistics ggplot2

我有一个看起来像这样的.tsv文件

MODEL           CA_RMSD BB_RMSD ALL_ATOM s1      s2     s3   
101_res_input   2.89    2.89    3.17    -84.37  -46.77  0.81   
102_res_input   3.29    3.29    3.52    -85.21  -50.49  1.04
103_res_input   3.74    3.73    3.98    -90.93  -48.18  1.65
104_res_input   3.09    3.07    3.34    -92.16  -49.63  1.03
105_res_input   3.44    3.43    3.69    -89.92  -49.81  1.08

我想要的是一张图表,其中包含CA_RMSD vs s1,另一张图表有CA_RMSD vs s2,另一张图表有CA_RMSD vs s3,依此类推。散点图可能会达到我想象的最佳效果。我是ggplot2的新手,但它几乎看起来像我想要使用的因为我想要在同一图像上的所有绘图,但是对于每个绘图,y轴将需要在不同的比例。

对于每个情节,我可以在比例尺上得到线性回归,告诉我哪些数据集与最佳关联?我必须要有一些功能才能做到这一点。

Ĵ

1 个答案:

答案 0 :(得分:3)

这个怎么样?

require(ggplot2)
require(reshape2)
df.m <- melt(df, id.var = "CA_RMSD", measure.var = c("X.s1", "s2", "s3"))
p <- ggplot(data = df.m, aes(x = CA_RMSD, y = value)) + 
    geom_point() + 
geom_smooth(method = "lm") + 
    facet_wrap(~ variable, nrow=1, scales="free")
cors <- ddply(df.m, .(variable), summarise, cor = round(cor(CA_RMSD, value), 2))
p + geom_text(data=cors, aes(label=paste("r=", cor, sep=""), 
                   x=c(3,3,3), y=c(-75, -50, 0)))

enter image description here