如何使用百分比在R中绘制密度曲线?

时间:2017-11-25 20:53:07

标签: r ggplot2 histogram percentage density-plot

我不确定我所问的问题在概念上是否正确,主要是因为密度本身的定义,但无论如何......

我正在尝试在R中绘制密度图,但是使用y轴上的百分比。在下图中,我成功绘制了我需要的曲线,但在我看来,这并不是y轴上的百分比。

enter image description here

我用来制作它的代码如下:

ggplot(data = base_15
           , aes(x = inv_hab, y = ..count../sum(..count..)
           , colour = abrg_natjur)
           ) + geom_density()

我已经在很多地方搜索过,例如:

http://www.cookbook-r.com/Graphs/Plotting_distributions_(ggplot2)/

https://en.wikipedia.org/wiki/Density_estimation

Use hist() function in R to get percentages as opposed to raw frequencies

但我还是失败了。当我使用

    geom_histogram(aes(y = ..count../sum(..count..)))

它起作用,y轴变为百分比,但它不适用于geom_density。我想用线而不是列来绘制它。

提前致谢。

1 个答案:

答案 0 :(得分:1)

您可以更改stat使用的geom_*以获得所需的输出。

我将使用mpg包中的ggplot2数据集作为此示例。

如你所说,

library(ggplot2)
ggplot(mpg) + aes(x = hwy, y = ..count../sum(..count..)) + geom_histogram()

将所需输出作为直方图产生: enter image description here

使用geom_density调用stat = 'bin',使用与geom_histogram相同的统计信息,而不是stat = 'density'的默认geom_density,您将获得什么我想你正在寻找:

ggplot(mpg) + aes(x = hwy, y = ..count../sum(..count..)) + geom_density(stat = 'bin')

enter image description here