【发布时间】:2014-07-10 11:09:20
【问题描述】:
我想绘制图来比较不同组树的生长情况。
library(MASS)
library(datasets)
library(ggplot2)
library(plyr)
library(grofit)
# Create groups as areas
Loblolly$Area = round(as.integer(as.character((Loblolly$Seed)))/10)
# factors for boxplot
Loblolly$fArea = factor(Loblolly$Area)
Loblolly$fAge = factor(Loblolly$age)
# Regression curve fitting
fHeight <- nls(height ~ gompertz(age,as,x1,x2), start=list(as=60,x1=1,x2=10),
data = ddply(Loblolly, c("age"), summarise, height = mean(height))
)
# A separate data frame for draw the fitted curves
age <- 1:25
lHeight <- predict(fHeight, list(age=age))
dfLine <- data.frame(age, lHeight)
ggplot(data=Loblolly, aes(x=fAge, y=height, fill=fArea)) +
geom_jitter(colour="lightgray") +
geom_boxplot()
我可以创建这样的箱线图:
但我想为每个 fArea 组拟合单独的拟合曲线,并将这些曲线放置在箱线图上。
当我使用“填充”选项将参数组呈现为箱线图时,我不能使用另一个 data.frame 来覆盖“geom_line”。
如何将拟合的 gompertz 函数呈现为每个组的 geom_line?
【问题讨论】:
-
能否提供一些数据(即 Lobolly 的 dput)?
-
Lobolly 在标准数据集库中。
-
啊抱歉,还以为是你正在使用的物种。所以问题是为每个 fArea 生成一条曲线,还是结合 geom_line 和 geom_boxplot,或两者兼而有之?
-
我正在使用自己的数据集,但内容与此示例中的相同。问题是为每个组创建拟合曲线并将其呈现在图上。重要的问题是,如何保留拟合曲线列表,如何将它们转换为点列表,以及如何将 geom_line 与箱线图结合起来。