我试图通过绘图上的点画一条线。每个图都是染色体。 x轴是sampleID,y轴是一个样本和样本17之间的相关性。我试图做的是绘制点之间的线性趋势线。但是,当我使用abline如下所示时,我得到错误,我不知道如何纠正它。我已将基线移动到代码的正确位,但没有分辨率>
#Get the data as display it
df <- read.delim("~/Desktop/SequencingScripts/Plots/blabla.txt", header=TRUE)
df[,order(names(df))]
ind = unique(as.character(df$chr))
for(jj in ind){
indic = which(df$chr == jj)
plot(i, corrie, xlim=c(0,22), ylim=c(0.7,1), pch=19, type="s", xlab="sample", ylab="r", main=jj)
for(i in 3:16) {
corrie = (cor(df[,i][indic], df[,15][indic]))
points(i,corrie)
}
abline(lm(corrie ~ i))
}
Error in int_abline(a = a, b = b, h = h, v = v, untf = untf, ...) :
'a' and 'b' must be finite
示例数据:
chr column3 column4 column5 etc..
chr9 14.44324324 11.66666667 14.13333333
chr9 22.93333333 7.20000000 9.13333333
chr9 15.60000000 5.86666667 5.73333333
chr10 3.06666667 8.46666667 1.80000000
chr12 10.333333 12.133333 7.000000
chr18 4.60000000 5.66666667 8.40000000
chr9 16.33333333 13.20000000 19.86666667
chr9 3.66666667 10.73333333 17.73333333
chr9 15.06666667 11.80000000 14.200000
chr2 7.800000 10.933333 7.066667
答案 0 :(得分:0)
这是一个盲目的尝试解决您的问题,因为您没有提供任何示例数据。我的建议是在开始绘图之前格式化要绘制的数据。
在您的示例中,您希望使用for {loop i
来计算相关性。因此,您可以在此循环中执行此操作并将所有相关性保存在data.frame中。当您收集了绘图中的所有数据后,您可以通过在新数据框架上调用plot
和abline
来绘制这些数据。
这可以重复所有染色体(环jj
)。您可以添加一行以保存绘图以在该循环中分离。
for(jj in ind){
indic <- which(df$chr == jj)
plot.df <- data.frame()
for(i in 3:16) {
corrie <- (cor(df[,i][indic], df[,15][indic]))
plot.df <- rbind(plot.df, c(i, corrie))
}
colnames(plot.df) <- c("sample", "cor")
plot(cor ~ sample, data=plot.df, xlim=c(0,22), ylim=c(0.7,1), pch=19,
type="p", xlab="sample", ylab="r", main=jj)
abline(lm(cor ~ sample, data=plot.df))
}