当数据量很大时,用ggplot2绘制直方图

时间:2014-01-29 14:53:48

标签: r ggplot2 histogram

我有以下数据框df,我想要绘制直方图。

     x
1   -28313937
2   -218616099
3   -18406124
4   20307666
5   31985283
6   41429217
7   46488567
8   47690792
9   51127321
10  53168291
11  55247883
12  -49200409
13  33398814
14  36198419
15  42765257
16  45857195
17  43870899
18  50557988
19  49574516
20  52317786
21  50769743

我使用以下代码绘制直方图,

R_hist <- ggplot(df, aes(x=x)) + 
geom_histogram(binwidth=.5, colour="black", fill="white") + 
geom_vline(aes(xintercept=mean(x, na.rm=T)), color="violet", linetype="dashed", size=1)

当我试图调用对象R_hist时,我得到一个错误:无法分配大小为4.1 Gb的向量 另外:警告信息: 1:在seq.default(round_any(范围[1],大小,楼层),round_any(范围[2],:   达到4021Mb的总分配:请参阅help(memory.size)

有人可以让我知道为什么直方图没有被绘制,因为它应该在这里

感谢。

1 个答案:

答案 0 :(得分:1)

如评论中所示,您尝试使用df$x中从最小值到最大值的条形图直方图。

相反,请使用geom_barstat='identity'

# grab the data provied
df <- read.table('clipboard')

# switch the names cause it'll bug me
df$y <- df$x
df$x <- row.names(df)

# plot using some identifier (row.names in this case)
ggplot(df, aes(x=x, y=y)) + geom_bar(stat='