2017-05-26 9 views
0

J'ai un fichier avec une colonne d'année et plusieurs autres variables dans les autres colonnes. Je voudrais créer quelques graphiques au fil du temps en utilisant ggplot2 où toutes les autres colonnes sont tracées en fonction du temps. Y at-il un moyen de le faire facilement sans créer toutes les parcelles manuellement? Ci-dessous quelques exemples de code:Comment tracer rapidement une colonne d'un dibble par rapport à toutes les autres colonnes?

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) 

Le Tibble Je travaille actuellement avec a entre 5 et 15 colonnes que j'explore les données et changer les choses.

Y a-t-il un moyen rapide de le faire sans créer les parcelles individuellement?

Répondre

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

Cela fonctionne très bien! Merci! –

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

Nous vous remercions de votre solution! Cela fonctionne et produit à peu près la même chose que la solution proposée par @RoyalTS. Il était juste un peu plus facile d'interpréter comment cela fonctionne en fonction de mon expérience. –

+0

@ La réponse de RoyalTS utilise la facette, qui crée un seul graphique avec plusieurs panneaux. Ma réponse crée trois parcelles séparées et les présente ensemble avec 'grid.arrange'. 'map' prend juste soin d'itérer sur les colonnes pour créer les parcelles séparées. 'map' est une fonction' tidyverse' qui est analogue à 'lapply' de la base R. – eipi10

+0

Je ne le savais pas! Merci pour la petite friandise de la connaissance. –

0

Vous pouvez utiliser le package GGally pour l'analyse exploratoire des données.

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

Cette solution fonctionne à la mode, même si elle donne plus d'informations que nécessaire et que tout n'est pas immédiat. Bien que je m'en souvienne certainement pour l'analyse future! Merci! –

+0

@ScottWhite Oui, probablement trop d'informations. – www