因子によって色分けされた複数のデータ系列を持つプロットに回帰直線を追加したいと思います。brewer.palパレットを使用して、因子(plant $ ID)で色付けされたデータポイントを使用してプロットを作成しました。以下はコードの例です。
palette(brewer.pal(12,"Paired"))
plot(x=plant$TL, y=plant$d15N, xlab="Total length (mm)", ylab="d15N", col=plant$ID, pch=16)
legend(locator(1), legend=levels(factor(plant$ID)), text.col="black", pch=16, col=c(brewer.pal(12,"Paired")), cex=0.6)
異なるデータ系列(因子)ごとにグラフに線形回帰直線を追加する簡単な方法はありますか?また、factor plant $ IDに従って線に色を付けたいですか?
これは、各データ系列を個別にプロットに追加してから、abline関数(以下のように)を使用することで実現できますが、複数のデータ系列がある場合は、色の一致に非常に時間がかかる可能性があります。
plot(y=plant$d15N[plant$ID=="Sm"], x=plant$TL[plant$ID=="Sm"], xlab="Total length (mm)", ylab="d15N", col="green", pch=16, xlim=c(50,300), ylim=c(8,15))
points(y=plant$d15N[plant$ID=="Md"], x=plant$TL[plant$ID=="Md"], type="p", pch=16, col="blue")
points(y=plant$d15N[plant$ID=="Lg"], x=plant$TL[plant$ID=="Lg"], type="p", pch=16, col="orange")
abline(lm(plant$d15N[plant$ID=="Sm"]~plant$TL[plant$ID=="Sm"]), col="green")
abline(lm(plant$d15N[plant$ID=="Md"]~plant$TL[plant$ID=="Md"]), col="blue")
abline(lm(plant$d15N[plant$ID=="Lg"]~plant$TL[plant$ID=="Lg"]), col="orange")
legend.text<-c("Sm","Md","Lg")
legend(locator(1), legend=legend.text, col=c("green", "blue", "orange"), pch=16, bty="n", cex=0.7)
もっと速い方法があるに違いない!どんな助けでも大歓迎です。