Создание точечного графика с помощью ggplot2 приводит к проблеме выделения памяти - PullRequest
0 голосов
/ 19 января 2012

(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

Где 'Дата / Время' было сформировано из необработанных данных CSV с as.POSIXct (...) Но когда я пытаюсьграфик с более чем 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 Ответ

3 голосов
/ 19 января 2012

Вы используете функцию 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 в файл.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...