Comment tracer plusieurs boxplots par le groupe dans r?
ID <- 1:10
group <- c(1,1,1,2,2,2,3,3,3,3)
var1 <- c(6:15)
var2 <- c(7:16)
var3 <- c(6:11, NA, NA, NA, NA)
var4 <- c(4:9, NA, NA, NA, NA)
data <- data.frame(ID, group, var1, var2, var3, var4)
library(dplyr)
data %>% group_by(group) %>% boxplot(var1, var2)
La dernière ligne ne fonctionne pas comme je le souhaite. L'idée est d'obtenir 4 boxplots dans un graphique. Deux pour chaque variable. Peut-être que j'ai besoin d'utiliser ggplot2?
Tu veux dire
Double Possible de la Parcelle de multiples boîte à moustaches dans un seul graphique
boxplot(value~group+variable, reshape2::melt(data, 1:2))
(Peut-être besoin install.packages("reshape2")
à l'avance)?Double Possible de la Parcelle de multiples boîte à moustaches dans un seul graphique
OriginalL'auteur SDahm | 2016-05-09
Vous devez vous connecter pour publier un commentaire.
Vous avez besoin de réorganiser les données si vous voulez obtenir à la fois des variables dans la même parcelle. Voici une
ggplot2
solution:Faire boxplots avec la même largeur est une toute autre question (solution), mais une simple alternative serait comme ceci:
ID <- 1:10 groupe <- c(1,1,1,2,2,2,3,3,3,3) var1 <- c(6:15) var2 <- c(7:16) var3 <- c(6:11, NA, NA, NA, NA) var4 <- c(4:9, NA, NA, NA, NA) de données <- données.cadre(ID, groupe, var1, var2, var3, var4) # chargement de la bibliothèque la bibliothèque(ggplot2) bibliothèque(tidyr) # réorganiser les données df <- recueillir(données, "ID","groupe") #renommer des colonnes colnames(df) <- c("ID","groupe","var","valeur") # tracé de ggplot(data=df) + geom_boxplot( aes(x=facteur(groupe), y=valeur, fill=facteur(var))) + geom_jitter(aes(x=facteur(groupe), y=valeur))
# définir l'espace entre les boîtes, elles sont rapprochées, surtout pour la gigue # set toutes les cases de la même largeur; en Raison de missings le troisième bloc est différent # change de couleur et niveaux de gris ou en noir et blanc motif n ° nom de l'groupes (1,2,3) --> "A","B","C"
Here vous trouverez une solution pour savoir comment faire boxplots avec la même largeur. J'ai tenu compte de vos autres points de la modifier à ma question
Merci, c'est très joli 🙂 Quand j'ai ajouter geom_jitter unfurtunately les points sont en dehors des cases et je ne peux pas trouver une solution pour changer cela. J'ai essayé de régler la largeur ou comme dans votre exemple position=position_dodge. La largeur ne change rien. Position fait une ligne entre les deux.
OriginalL'auteur rafa.pereira
Vous pouvez essayer de faire fondre la trame de données (mentionné dans le commentaire de @lukeA) d'abord, puis s'en tenir à des graphismes de base.
ggplot2
oulattice
sont d'autres bonnes options.Suppléant
lattice
code, également à l'aide deDF
:Suppléant
ggplot2
code, également à l'aide deDF
:OriginalL'auteur BenBarnes