【问题标题】:multiple ggplot linear regression lines多条ggplot线性回归线
【发布时间】:2014-11-03 08:44:04
【问题描述】:

我正在根据同一图上的众多变量绘制一个物种的发生情况。还有许多其他变量,但为了这篇文章,我只保留了重要的变量:

 > str(GH) 
 'data.frame':  288 obs. of  21 variables: 
 $ Ee       : int  2 2 1 7 6 3 0 9 3 7 ... 
 $ height   : num  14 25.5 25 21.5 18.5 36 18 31.5 28.5 19 ... 
 $ legumes  : num  0 0 55 30 0 0 55 10 30 0 ... 
 $ grass    : num  60 50 30 35 40 35 40 40 35 30 ... 
 $ forbs    : num  40 70 40 50 65 70 40 65 70 70 ... 

我已经设法很好地绘制了这个图并让它看起来很漂亮(其中 Ee 是有问题的物种):

ggplot(data=GH,aes(y=y,x=x),ylab="Number of individuals (N)",xlab="Percentage cover (%); OR  Height(cm))+
geom_jitter(aes(legumes,Ee),colour="blue")+ 
geom_jitter(aes(grass,Ee),colour="green")+ 
geom_jitter(aes(forbs,Ee),colour="red")+ 
geom_jitter(aes(height,Ee),colour="black") 

但是,我想为每个变量添加回归线(并计算 R 平方值),但到目前为止还没有运气。轴标签也拒绝从我以前从未遇到过的 X 和 Y 改变。有人可以给我任何帮助吗?干杯

【问题讨论】:

  • 您似乎试图将ggplot 标记为基本图形。这行不通。试试+ labs(x = "Percentage cover (%)", y = "Number of individuals (N)")

标签: r ggplot2 regression


【解决方案1】:

在 ggplot2 中使用 geom_smooth geom 可以显示回归线。我正在使用mtcars 数据集,因为它与您的非常相似:

ggplot(mtcars) + 
  geom_jitter(aes(disp,mpg), colour="blue") + geom_smooth(aes(disp,mpg), method=lm, se=FALSE) +
  geom_jitter(aes(hp,mpg), colour="green") + geom_smooth(aes(hp,mpg), method=lm, se=FALSE) +
  geom_jitter(aes(qsec,mpg), colour="red") + geom_smooth(aes(qsec,mpg), method=lm, se=FALSE) +
  labs(x = "Percentage cover (%)", y = "Number of individuals (N)")

另外,我从ggplot 中删除了aes(y=y,x=x),因为它没有任何意义。结果:

使用来自reshape2 包的melt 有更精细(但更好看)的方法来完成同样的任务:

require(ggplot2)
require(reshape2)
mtcars2 = melt(mtcars, id.vars='mpg')
ggplot(mtcars2) +
  geom_jitter(aes(value,mpg, colour=variable),) + geom_smooth(aes(value,mpg, colour=variable), method=lm, se=FALSE) +
  facet_wrap(~variable, scales="free_x") +
  labs(x = "Percentage cover (%)", y = "Number of individuals (N)")

此解决方案的一个重要元素是选项 scales="free_x",它允许在每个方面图上独立缩放 X。

【讨论】:

  • 完美!这正是我想做的!谢谢。第一次玩ggplot。你知道我如何将 R sq. 值添加到每一行吗?我通过使用: Eeleg
  • 这种方法是否可以包含相关系数、斜率和截距?
猜你喜欢
  • 2019-10-20
  • 2021-01-14
  • 2018-05-28
  • 2021-03-25
  • 2021-05-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-08-20
相关资源
最近更新 更多