2017-05-26 3 views
0

Ich habe ein tibble mit einer Jahresspalte und mehreren anderen Variablen in den anderen Spalten. Ich möchte einige Diagramme im Laufe der Zeit mit ggplot2 erstellen, wo alle anderen Spalten gegen die Zeit aufgetragen werden. Gibt es eine Möglichkeit, dies einfach zu tun, ohne alle Plots manuell zu erstellen? Nachfolgend finden Sie einige Beispiel-Code:Wie kann ich eine Spalte eines tibble im Vergleich zu allen anderen Spalten schnell grafisch darstellen?

library(tidyverse) 
library(gridExtra) 

temp <- tibble(
    num = 1:10, 
    v = num +num^2, 
    w = num^2, 
    z = num + 3 
) 

temp 

p1 <- ggplot(temp, aes(x = num, y = v)) + 
    geom_point() + labs(y = "v") 

p2 <- ggplot(temp, aes(x = num, y = w)) + 
    geom_point() + labs(y = "w") 

p3 <- ggplot(temp, aes(x = num, y = z)) + 
    geom_point() + labs(y = "z") 

grid.arrange(p1, p2, p3, nrow = 2, ncol = 2) 

Die tibble ich tatsächlich arbeiten bin hat zwischen 5 und 15 Spalten, wie ich die Daten zu erforschen und die Dinge um zu ändern.

Also gibt es einen schnellen Weg, dies zu tun, ohne die Plots einzeln zu erstellen?

Antwort

1
temp %>% 
    tidyr::gather(variable, value, -num) %>% 
    ggplot(aes(num, value)) + 
    geom_point() + 
    facet_wrap(~variable, ncol = 2, nrow = 2) 
+0

Das funktioniert hervorragend! Vielen Dank! –

1
setdiff(names(temp), "num") %>% 
    map(~ ggplot(temp, aes_string("num", .x)) + 
    geom_point() + labs(y=.x)) %>% 
    grid.arrange(grobs=., ncol=3) 
+0

Danke für Ihre Lösung! Es funktioniert, und produziert so ziemlich das gleiche wie die von @RoyalTS vorgeschlagene Lösung. Es war ein bisschen einfacher zu interpretieren, wie es funktioniert, basierend auf meiner Erfahrung. –

+0

@ RoyalTS Antwort verwendet Facettierung, die ein einzelnes Diagramm mit mehreren Panels erstellt. Meine Antwort erstellt drei separate Plots und legt sie zusammen mit 'grid.arrange' aus. 'map' kümmert sich nur darum, über die Spalten zu iterieren, um die separaten Plots zu erstellen. 'map' ist eine' tidyverse'-Funktion, die analog zu 'lapply' von Basis R ist. – eipi10

+0

Das wusste ich nicht! Danke für den kleinen Leckerbissen des Wissens. –

0

können Sie das Paket verwenden GGally für die explorative Datenanalyse.

library(GGally) 
ggpairs(data = temp) 
+0

Diese Lösung funktioniert nach einer Mode, obwohl es mehr Informationen gibt, als ich brauche, und es ist nicht sofort, wie man alles interpretiert. Obwohl ich mich definitiv daran für zukünftige Analysen erinnern werde! Vielen Dank! –

+0

@ScottWhite Ja, wahrscheinlich zu viele Informationen. – www

Verwandte Themen