Próbuję wykreślić milion punktów danych w R. Aktualnie korzystam z ggplot2 (ale jestem otwarty na sugestie alternatywnych pakietów). Problem polega na tym, że renderowanie wykresu trwa zbyt długo (często w ciągu minuty). Szukam sposobów, aby to zrobić szybciej - w idealnym czasie. Byłbym wdzięczny za każdą pomoc - dołączając kod do pytania dla jasności.Efektywnie wykreślając miliony punktów danych w R
Tworzenie (losowo) ramki danych z ~ 500000 punktów danych:
letters <- c("A", "B", "C", "D", "E", "F", "G")
myLetters <- sample(x = letters, size = 100000, replace = T)
direction <- c("x", "y", "z")
factor1 <- sample(x = direction, size = 100000, replace = T)
factor2 <- runif(100000, 0, 20)
factor3 <- runif(100000, 0, 100)
decile <- sample(x = 1:10, size = 100000, replace = T)
new.plot.df <- data.frame(letters = myLetters, factor1 = factor1, factor2 = factor2,
factor3 = factor3, decile = decile)
Teraz wykreślania danych:
color.plot <- ggplot(new.plot.df, aes(x = factor3, y = factor2, color = factor1)) +
geom_point(aes(alpha = factor2)) +
facet_grid(decile ~ letters)
Jak zrobić rendering szybciej ?
Pierwszą rzeczą, która przychodzi mi do głowy, jest wybranie podzbioru pełnych danych, które narysujesz. Mniejsza liczba punktów powinna prawdopodobnie oznaczać krótszy czas renderowania. Sztuką jest dowiedzieć się, jak próbować miliony punktów. –
Dzięki Tim. Próbuję różnych metod próbkowania, ale czy poza tą trasą istnieje inny sposób? –
Jedyne 2 rzeczy, które mogą być alternatywą, to jakoś poskromić 'ggplot' do renderowania szybciej, co wymagałoby ekspertyzy, której ja nie posiadam. Inną możliwością byłoby oczywiście uzyskanie szybszej maszyny, która prawdopodobnie nie jest opcją. –