Подтвердить что ты не робот

Ускорение функции plot() для большого набора данных

Я использую plot() для более 1 миллиона точек данных, и это оказывается очень медленным.

Есть ли способ улучшить скорость, включая программирование и аппаратные решения (больше RAM, графическая карта...)?

Где хранятся данные для графика?

4b9b3361

Ответ 1

График hexbin на самом деле показывает вам что-то (в отличие от диаграммы рассеивания @Roland в комментариях, которые могут быть просто гигантскими, медленными, blob) и занимает около 3,5 секунд на моей машине для вашего примера:

set.seed(101)
a<-rnorm(1E7,1,1)
b<-rnorm(1E7,1,1)
library(hexbin)
system.time(plot(hexbin(a,b)))

enter image description here

Ответ 2

простым и быстрым способом является установка pch='.'. Производительность показана ниже

x=rnorm(10^6)
> system.time(plot(x))
  user  system elapsed 
  2.87   15.32   18.74 
> system.time(plot(x,pch=20))
  user  system elapsed 
  3.59   22.20   26.16 
> system.time(plot(x,pch='.'))
  user  system elapsed 
  1.78    2.26    4.06 

Ответ 3

Вы посмотрели пакет tabplot. он разработан специально для больших данных http://cran.r-project.org/web/packages/tabplot/ Я использую его быстрее, чем использование hexbin (или даже по умолчанию графики подсолнечника для перезаписи)

Также я думаю, что Хэдли написал что-то в блоге DS, изменяя ggplot для больших данных на http://blog.revolutionanalytics.com/2011/10/ggplot2-for-big-data.html

"" В настоящее время я работаю с другим учеником Юэ Ху, чтобы превратить наше исследование в надежный пакет R. "" " 21 октября 2011 г.

Возможно, мы можем спросить Хэдли, если обновленный ggplot3 готов