gpt4 book ai didi

r - 如何将回归线添加到具有多个按因子颜色编码的数据系列的图中?

转载 作者:行者123 更新时间:2023-12-04 18:48:59 25 4
gpt4 key购买 nike

我希望将回归线添加到具有多个数据系列的图中,这些数据系列由一个因子进行颜色编码。使用 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)

是否有一种简单的方法可以为每个不同的数据系列(因子)在图中添加线性回归线?我还希望根据植物 $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)

一定有更快的方法!任何帮助将不胜感激。

最佳答案

或者你用 ggplot2让它完成所有繁重的工作。不幸的是,你的例子是不可重现的,所以我必须自己创建一些:

plant = data.frame(d15N = runif(1000), 
TL = runif(1000),
ID = sample(c("Sm","Md","Lg"), size = 1000, replace = TRUE))
plant = within(plant, {
d15N[ID == "Sm"] = d15N[ID == "Sm"] + 0.5
d15N[ID == "Lg"] = d15N[ID == "Lg"] - 0.5
})

> head(plant)
d15N TL ID
1 0.6445164 0.14393597 Sm
2 0.2098778 0.62502205 Lg
3 -0.1599300 0.85331376 Lg
4 -0.3173119 0.60537491 Lg
5 0.8197111 0.01176013 Sm
6 1.0374742 0.68668317 Sm

诀窍是使用 geom_smooth计算 lm 的几何体并绘制它。因为我们使用 color = ID , ggplot2知道它需要为 ID 中的每个唯一 ID 绘制整个图。 .
library(ggplot2)
ggplot(plant, aes(x = TL, y = d15N, color = ID)) +
geom_point() + geom_smooth(method = "lm")

enter image description here

关于r - 如何将回归线添加到具有多个按因子颜色编码的数据系列的图中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14727433/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com