我正在尝试使用 ggplot2 绘制包含 2 组数据的直方图。我的数据集有 418 个值要绘制,有 2 组数据(所以我的直方图上会有 2 组彩色条)。令人讨厌的是,我无法重现iris
数据集的问题:
library(ggplot2)
ggplot(iris, aes(x=iris[,1], fill=iris[,5])) +
geom_histogram(binwidth=.5,alpha=.5)
这会创建一个很好的直方图。当我对我的数据进行尝试时,我得到:
Error : cannot allocate vector of size 4.0 Gb
In addition: Warning messages:
1: In anyDuplicated.default(breaks) :
Reached total allocation of 16366Mb: see help(memory.size)
2: In anyDuplicated.default(breaks) :
Reached total allocation of 16366Mb: see help(memory.size)
3: In anyDuplicated.default(breaks) :
Reached total allocation of 16366Mb: see help(memory.size)
4: In anyDuplicated.default(breaks) :
Reached total allocation of 16366Mb: see help(memory.size)
Error in UseMethod("scale_dimension") :
no applicable method for 'scale_dimension' applied to an object of class "NULL"
我有 16GB 的内存,所以生成一个包含 418 个数据点的图应该不是问题。
非常感谢任何帮助。
事实证明,即使引用列名,我的数据仍然不会绘制。我认为这是由于数据的范围。在对数据进行对数转换后,将绘制直方图。似乎 ggplot2 或 R 整体不喜欢 1-165476109 的范围,这是可以理解的......