我使用GGPLOT2进行直方图:
geom_histogram(aes(x=...), y="..ncount../sum(..ncount..)")
我得到的错误:
Mapping a variable to y and also using stat="bin".
With stat="bin", it will attempt to set the y value to the count of cases in each group.
This can result in unexpected behavior and will not be allowed in a future version of ggplot2.
If you want y to represent counts of cases, use stat="bin" and don't map a variable to y.
If you want y to represent values in the data, use stat="identity".
See ?geom_bar for examples. (Deprecated; last used in version 0.9.2)
是什么原因导致这个有什么看法? 我感到困惑的错误,因为我不是映射到一个变量y
,只是直方图-ING x
和想直方图条的高度来表示数据的标准化分数(例如,所有的酒吧高度一起合计为100 %的数据)。
编辑 :如果我想打一个密度图geom_density
代替geom_histogram
,我用..ncount../sum(..ncount..)
或..scaled..
? 我不清楚什么..scaled..
一样。
这里的混乱是一个长期存在的一个(就证明了详细的警告信息),与所有开始stat_bin
。
但是,用户通常不会意识到他们的困惑围绕stat_bin
,因为他们同时使用两种通常会遇到的问题geom_bar
或geom_histogram
。 注意对于每个文档:它们都使用stat = "bin"
(在当前版本GGPLOT2这个统计已经被分成stat_bin
的连续数据和stat_count
为离散数据)由缺省值。
但是,让我们备份。 geom_*
的控制数据的实际呈现成某种几何形式。 stat_*
的简单转换数据。 这种区别在实践中是有点混乱,因为添加了一层stat_bin
将默认,调用geom_bar
,因此它可以区分似乎geom_bar
当你学习。
在任何情况下,考虑“酒吧”般GEOM的:柱状图和条形图。 两者都明确地将某处沿线涉及数据的一些分级。 但是,我们的数据可以是预定总结与否。 例如,我们可能想柱状图来自:
x
a
a
a
b
b
b
或者等价地从
x y
a 3
b 3
第尚未装箱。 第二个是预分级。 两者的默认行为geom_bar
和geom_histogram
是假设你没有预先分级数据。 因此,他们将尝试呼叫stat_bin
(对于直方图,现在stat_count
您的条形图) x
值。
正如警告说,它会再尝试映射y
为你所得到的计数。 如果你还试图映射y
自己你最终会一些其他的变量此处有怪物的领地。 映射y
通过返回的变量的函数stat_bin
( ..count..
等)应该没问题,不应该抛出警告(它使用上面@ MNEL的例子并不对我来说)。
外卖这里是一个为geom_bar
如果你已经预先计算的条的高度,始终记住使用stat = "identity"
,或更好,但使用新的geom_col
它采用stat = "identity"
默认情况下。 对于geom_histogram
这是非常不可能的,你会预先计算出仓,因此在大多数情况下,你只需要记住不要映射y
至超出了从返回什么事stat_bin
。
geom_dotplot
使用它自己的分级统计, stat_bindot
,并讨论在这里也适用,我相信。 这种事情通常一直没有与2D分级情况(一期geom_bin2d
和geom_hex
),因为还没有在类似的可用更大的灵活性z
变量的分级y
在1D情况变量。 如果未来的更新开始允许的2D分级的情况下,这可能我想成为你要注意有什么更有趣的操作。
对于文档geom_histogram
说,它是一个别名stat_bin
和geom_bar
为文档geom_density
使用平滑密度估计值的状态使用产生stat_density
继链接(或者直接找到帮助页面)
stat_bin
对于文档stat_bin
介绍如何stat_bin
返回具有以下(附加)列data.frame
算上斌点数
在仓点的密度密度,扩展到集成到1
NCOUNT计数,缩放到最大的1
ndensity密度,缩放到最大的1
stat_density
对于文档stat_density
介绍如何stat_density
返回具有以下(附加)列data.frame
密度密度的估计
算分的密度*号-用于堆叠密度图有用
缩放密度估计值,缩放到最大的1
为了产生一个阴谋以相同的规模它会出现你想要..ndensity..
从stat_bin
和..scaled..
从stat_density
或..density..
从两个
ggplot(dd, aes(x=x)) +
geom_histogram(aes(y= ..density..)) +
geom_density(aes(y=..density..))
ggplot(dd, aes(x=x)) +
geom_histogram(aes(y= ..ndensity..)) +
geom_density(aes(y=..scaled..))