Créer des intrigues dans une boucle à l'aide de ggplot2
J'ai pour générer 250 parcelles avec le même point de vue.
Mon exemple d'ensemble de données:
df <- data.frame(name = c("john","alex","mike","dennis","alex"),
expenses = c("10","12","15","8","2"),
type = c("food","rent","rent","food","food"))
Je voudrais barre de parcelles avec les charges de tous les noms d'une seule parcelle. L'intrigue de "alex" ressemblera à:
selected.name <- "alex"
df1 <- subset(df, name == selected.name)
ggplot(data = df1, aes(type, expenses)) + geom_bar()
Maintenant je veux utiliser une boucle qui les parcelles de la même parcelle pour chaque nom dans la df. J'ai essayé d'utiliser une boucle qui exécute le code de la parcelle ci-dessus en tant que fichier source. Mais je ne peux pas passer le nom de la variable dans le fichier source afin qu'il trace le graphique pour chaque nom. Maintenant, je seulement obtenir un graphique de la boucle for.
- veuillez spécifier votre question, un peu plus. est votre problème que vous obtenez seulement 1 fenêtre avec 1 graphique? que
x11()
pourrait être la solution. si vous voulez sauvegarder les fichiers pdf ensuite utiliserpdf(file)
print(ggplot(...)
dev.off()
.... - Salut Seb, merci pour la réponse. Je veux créer une intrigue comme l'intrigue que j'ai créé pour le nom alex pour chaque autre nom dans le df. Sans avoir à saisir manuellement les noms. Parce que dans le réel données d'il y a 250 noms. Espérons que cette aide.
- J'irais pour ggsave au lieu de pdf().
- ne cet exemple de l'aide?
Vous devez vous connecter pour publier un commentaire.
Pour répondre à vos orignal question. Pour ce faire, en utilisant la norme R:
De cette façon, vous vous retrouvez avec un grand nombre de fichiers pdf appelé Adam.pdf, etc. Vous pouvez ensuite utiliser pdftk (pdf tool kit) pour chat les fichiers ensemble dans un seul document. Je préfère encore, une meilleure solution, par exemple à l'aide facetting ou d'un type différent de l'intrigue.
Ne serait-il pas préférable d'utiliser facetting? Compte tenu de votre exemple, le code serait:
qui mène à la suite de l'intrigue:
Peut-être pour 250 noms et les plus variables, ce pourrait être un problème. Mais je regarderais facetting néanmoins.
Un collègue vient de rappeler que l'utilisation de sous-ensemble dans une fonction est une très mauvaise idée. Voir
?subset()
pour plus d'info. J'ai donc adapté la réponse de Paul Hiemstra et remplacé le sous-ensemble.