R - geom_density() 使用什么算法以及如何提取曲线的点/方程? [英] R - What algorithm does geom_density() use and how to extract points/equation of curves?
问题描述
我想知道 geom_density() 到底在做什么,所以我证明了图形的合理性,以及是否有任何方法可以提取为所绘制的每条曲线生成的函数或点.
I would like to know what is geom_density() exactly doing, so I justify the graph and if there is any way of extracting the function or points that generates for each of the curves being plotted.
谢谢
推荐答案
Typing get("compute_group", ggplot2::StatDensity)
(或者,以前,get("calculate",ggplot2:::StatDensity)
) 将为您提供用于计算密度的算法.(从根本上说,它是对 density()
的调用,默认为 kernel="gaussian"
.)
Typing get("compute_group", ggplot2::StatDensity)
(or, formerly, get("calculate", ggplot2:::StatDensity)
) will get you the algorithm used to calculate the density. (At root, it's a call to density()
with kernel="gaussian"
the default.)
绘图中使用的点由 print.ggplot()
隐形返回,因此您可以像这样访问它们:
The points used in the plot are invisibly returned by print.ggplot()
, so you can access them like this:
library(ggplot2)
m <- ggplot(movies, aes(x = rating))
m <- m + geom_density()
p <- print(m)
head(p$data[[1]], 3)
# y x density scaled count PANEL group ymin ymax
# 1 0.0073761 1.0000 0.0073761 0.025917 433.63 1 1 0 0.0073761
# 2 0.0076527 1.0176 0.0076527 0.026888 449.88 1 1 0 0.0076527
# 3 0.0078726 1.0352 0.0078726 0.027661 462.81 1 1 0 0.0078726
## Just to show that those are the points you are after,
## extract and use them to create a lattice xyplot
library(gridExtra)
library(lattice)
mm <- xyplot(y ~x, data=p$data[[1]], type="l")
这篇关于R - geom_density() 使用什么算法以及如何提取曲线的点/方程?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!