在R中改变轴的效果限制图

时间:2017-10-04 08:23:24

标签: r ggplot2 lm

我正在使用效果包来绘制线性回归的交互效果,如下所示:

library(effects)
Model <- lm(drat~hp*cyl, data=mtcars)
plot(effect(term="hp*cyl",mod=Model,default.levels=10),multiline=TRUE)

如何更改限制以使它们从0-10开始?我试过ylim =(0,10),其他变化没有效果。或者,可以使用ggplot2以相同的方式绘制回归吗?

3 个答案:

答案 0 :(得分:3)

这是ggplot2版本:

library(effects)
library(ggplot2)
Model <- lm(drat~hp*cyl, data=mtcars)
ef <- effect(term = "hp:cyl", Model, default.levels = 9) # 9 because the breaks are nicer
ef2 <- as.data.frame(ef)

ggplot(ef2, aes(hp, fit, col = factor(cyl))) +
  geom_line() +
  labs(y = 'drat') +
  ylim(0, 10)

enter image description here

答案 1 :(得分:2)

使用plot功能,像这样设置ylim

plot(effect(term="hp*cyl",mod=Model,default.levels=10),multiline=TRUE,ylim=c(0,10))

答案 2 :(得分:2)

ggplot2不知道如何处理课程数据,因此您需要在绘图前将效果数据转换为数据帧。然后,您可以将group=aes()中的数据一起使用,以获取每个组的行数。

library(effects)
library(ggplot2)
Model <- lm(drat~hp*cyl, data=mtcars)
e<-effect(term="hp*cyl",mod=Model,default.levels=10)
ee<-data.frame(e)
ee$cyl<-factor(ee$cyl)
ggplot(ee, aes(x = hp, y = fit, group = cyl, colour = cyl)) +
       geom_line() +
       scale_y_continuous(limits = c(0,10))

ggplot effects plot