web-dev-qa-db-fra.com

Génération de plusieurs tracés dans ggplot par facteur

J'ai un ensemble de données pour lequel je souhaite générer plusieurs tracés en fonction de l'une des colonnes. Autrement dit, je veux pouvoir utiliser ggplot pour créer un graphique séparé pour chaque variété de ce facteur.

Voici quelques exemples de données rapides:

Variety = as.factor(c("a","b","a","b","a","b","a","b","a","b")
Var1 = runif(10)
Var2 = runif(10)
mydata = as.data.frame(cbind(Variety,Var1,Var2))

Je voudrais générer deux tracés distincts de Var1 sur Var2, un pour la variété A, un second pour la variété B, de préférence dans une seule commande, mais s'il y a un moyen de le faire sans diviser la table, ce serait bien aussi .

13
riders994

Vous pouvez utiliser facet_grid ou facet_wrap pour diviser les graphiques par facteurs.

ggplot(mydata, aes(Var1, Var2)) + geom_point() + facet_grid(~ Variety)

ou, sur des parcelles distinctes, utilisez simplement une boucle simple

for (var in unique(mydata$Variety)) {
    dev.new()
    print( ggplot(mydata[mydata$Variety==var,], aes(Var1, Var2)) + geom_point() )
}
23
pickle rick