Say I have a dataframe named as "data":
Sal T1 T2 T3 T4 T5 T6
29.0 4.00 NA NA NA NA NA
29.5 7.50 NA NA NA NA NA
30.0 10.40 1.50 NA NA NA NA
30.5 12.50 6.00 NA NA NA NA
31.0 14.50 9.00 NA NA NA NA
31.5 16.25 11.50 4.00 NA NA NA
32.0 18.00 13.50 7.50 NA NA NA
32.5 19.50 15.25 10.00 1.50 NA NA
33.0 20.90 17.00 12.20 5.55 NA NA
33.5 22.40 18.50 14.10 8.50 NA NA
34.0 23.60 20.00 16.05 11.00 4.0 NA
34.5 24.90 21.50 17.50 13.00 7.1 NA
35.0 NA 22.75 19.20 14.70 9.7 1.5
35.5 NA 23.90 20.50 16.50 11.9 5.5
I need to plot all columns with respect to column 1 in one graph. I can do it one by one by adding points and lines to the initial plot. For example:
mydata1 = na.omit(data[1:2])
plot(mydata1)
lines(mydata1,col=1)
mydata2 = na.omit(data.frame(c(data[1]),c(data[3])))
points(mydata2, col =2)
lines(mydata2,col=2)
But it is too tedious. I am thinking using for loop to plot all at once. But it seems only plotting the last one:
for (i in 2:ncol(data)){
mydata = na.omit(data.frame(c(data[1]),c(data[i])))
plot(mydata)
lines(mydata)
}
How do I do this in R? Thanks for any help.
Here is the final solution:
plot(0,0,xlim=c(28,37),ylim=c(0,25),type="n",ylab = "T", xlab = "Sal")
for (i in 2:ncol(data)){
mydata = na.omit(data.frame(c(data[1]),c(data[i])))
lines(mydata, col = i)
legendN = colnames(data)
legendN = legendN[2:7]
legend("topleft", legend = legendN, col= 2:7, pch=1) # optional legend
}



plot()outside the loop? Lines and points leave in the loop.