我有一个数据框,其数据为体温(Tb),基质温度(Ts),适用于两性的几个人以及来自三个不同人群的数据像这样: (因为我无法分享我的全桌,所以我编写了这张桌子,但是我每个流行音乐大约有30个人)
pop sex tb ts
bo m 37 30
bo m 39 29
bo f 36 36
pa m 40 34
pa f 37 28
pa m 37 33
pa f 36 26
re f 35 24
re f 37 29
re m 38 30
我想评估Tb和Ts之间的关系,但不仅要考虑物种,还要分别评估每个种群之间的关系,以便找出它们之间斜率的可能差异。
my.regression <- lm(tb ~ ts*pop*sex, data = mydata)
我设法绘制了一个不同颜色的散点图,一个是我的人口。但是,我无法绘制我的回归线。我到处搜索答案:关于如何按组添加回归线...(不是在stackoverflow中,甚至没有全能谷歌,youtube教程,R书,R图形书等的帮助)
我想要的是按每个人口绘制一条回归线。类似于
的东西答案 0 :(得分:2)
使用ggplot2和geom_smooth图层很容易做到:
library(ggplot2)
ggplot(mydata, aes(x=tb, y=ts, col=pop)) + geom_point() +
geom_smooth(method="lm", se=FALSE)
如果你想按性别分开,那么按照@Henrik的建议你可能想尝试将它们放在单独的子图中(称为facet):
ggplot(mydata, aes(tb, ts, col=pop)) + geom_point() +
geom_smooth(method="lm", se=FALSE) + facet_wrap(~ sex)
或者你可以用两者进行绘图,但使用线型(实线或虚线)来区分性别:
ggplot(mydata, aes(tb, ts, col=pop, lty=sex)) + geom_point() +
geom_smooth(method="lm", se=FALSE)