我正在尝试创建一个由直方图和一个由某些分类变量区分的理论密度函数组成的多图。每个子集的分布和参数都是已知的(让其假定为对数正态)。 让我们考虑虹膜示例
ggplot(iris,aes(x=Sepal.Length)) +
geom_histogram(aes(y=stat(density))) +
facet_grid(.~Species)
我可以通过为每个类别物种创建一个单独的图(使用数据集上的dplyr :: filter),然后使用grid.arrange将其组合起来,以一种非常简单的方式进行操作 gridExtra 软件包。
我觉得应该有一个更优雅的解决方案,不需要我手动创建每个图。也许例如,使用构面获取不同的图并添加stat_function?
ggplot(iris,aes(x=Sepal.Length)) +
geom_histogram(aes(y=stat(density))) +
facet_grid(.~Species) +
stat_function(fun = dlnorm, args = list(mean = mi, sd = sigma ))
但是我无法弄清楚/发现的是如何估计/将不同的参数应用于每个面板,因为这些密度函数将有所不同。例如,如果每个图的参数mi和sigma为:
mi=c(5.5,6,6.5)
sigma=c(0.5,1,1.5)
预先感谢您的帮助和建议。