使用ggplot2制作散点图会导致内存分配问题

时间:2012-01-19 12:23:03

标签: r memory-management ggplot2

(R初学者......)我有一个像:

这样的数据集
> head(q)
            Date Time System User
1 2011-10-01 00:00:01   12.4  4.6
2 2011-10-01 01:00:02   27.4  1.8
3 2011-10-01 02:00:01   15.2  1.0
4 2011-10-01 03:00:01   19.8  2.4
5 2011-10-01 04:00:02   19.2  3.4
6 2011-10-01 05:00:01   17.8  1.8
> nrow(q)
[1] 2207

其中'日期时间'是使用as.POSIXct(...)从原始csv数据形成的 但是当我尝试超过1300行的情节时:

> qplot(q$'Date Time',q$'User');dev.off()
Error: cannot allocate vector of size 9.8 Gb

与以下内容相同:

> ggplot(q,aes(q$'Date Time',q$'User'))+geom_point(); dev.off()
Error: cannot allocate vector of size 9.8 Gb

我能做些什么才能让它发挥作用?我想要分散三个月的系统性能指标 - 数据是每小时一次,所以大约有2200行。

1 个答案:

答案 0 :(得分:3)

您使用的是错误的aes功能。你使用:

ggplot(q,aes(q$'Date Time',q$'User'))+geom_point()

正确的是:

ggplot(q,aes_string(x = 'Date Time', y = 'User')) + geom_point()

无需向aes提供数据向量。你可以尝试看看它是否有帮助。 此外, 一个好的建议也是使用ggsave将你的ggplot保存到文件中。