以下代码绘制了ANCOVA的结果:
library(HH)
ancova(weight ~ gesttime + dose, data=litter)
如果我尝试在ggplot中制作相同的图,那么最佳拟合线的斜率在dose
的不同级别上不均匀。
library(ggplot2)
ggplot(litter, aes(gesttime, weight)) + geom_point() + facet_grid(. ~ dose) + stat_smooth(method="lm")
如何使用ancova()
输出相同的图,但使用ggplot?
答案 0 :(得分:5)
使用ggplot,您需要使用geom_line()绘制模型中的预测值,如下所示,以产生您想要的效果。
让你的模特适合:
data(litter)
mod <- ancova(weight ~ gesttime + dose, data=litter)
pred <- predict(mod)
绘制它:
ggplot(data = cbind(litter, pred),
aes(gesttime, weight, color=dose)) + geom_point() +
facet_grid(. ~ dose) + geom_line(aes(y=pred))