R - Comment puis-je tracer plusieurs histogrammes ensemble?
J'ai un dataframe avec quatre colonnes qui ressemble à ceci:
Beef-Low Beef-High Cereal-Low Cereal-High
90 73 107 98
76 102 95 74
90 118 97 56
64 104 80 111
86 81 98 95
51 107 74 88
72 100 74 82
90 87 67 77
95 117 89 86
78 111 58 92
Je veux faire un histogramme montrant tous les quatre colonnes différents-barres de couleur j'ai donc essayé:
> hist(wt$Beef.Low, main="Weight Gain Across Four Diets", xlab="Weight Gain", col="coral", xlim=c(0,120), ylim=c(0,4))
> hist(wt$Beef.High, col="coral3", add=T)
> hist(wt$Cereal.Low, col="yellow", add=T)
> hist(wt$Cereal.High, col="yellow3", add=T)
Qui a produit:
Je n'aime pas la nature opaque de la prison car ils masquent les formes de cumul des histogrammes. Je sais que je peux utiliser le code trouvé ici manuellement vicaire les couleurs de mon histogrammes; mais cela semble être un processus fastidieux et je suis sûr qu'il doit y avoir une meilleure façon.
Au lieu de cela, j'ai essayé de copier ce qui a été fait dans ce question
> bl = wt$Beef.Low
> bh = wt$Beef.High
> cl = wt$Cereal.Low
> ch = wt$Cereal.High
> wts = rbind(bl,bh,cl,ch)
> wtss = as.data.frame(wts)
> ggplot(wtss, aes("Weight", fill="Diet")) + geom_histogram(alpha=0.5, aes(y = "Frequency"), position="identity")
Mais il ne fonctionne pas et je ne comprends pas le ggplot commandes assez bien pour avoir même une idée de pourquoi. S'il vous plaît aider.
- pour ggplot, il serait plus facile de faire fondre les données de la première comme dans cette réponse
- Je ne comprends pas de quoi faire fondre n'. Il a dit qu'il crée un "fondu dataframe" mais je ne sais pas ce que cela signifie
Vous devez vous connecter pour publier un commentaire.
Je serais enclin à le faire avec des facettes. Sinon, avec votre jeu de données, le résultat est incompréhensible.
MODIFIER: Réponse à des OP commentaire.
melt(...)
convertit une trame de données à partir de "grand" format de données dans les différentes colonnes à "long" format - toutes les données dans une colonne, avec une deuxième colonne de la distinction entre les différents types de données (par exemple, l'identification de la colonne données de la ligne de départ).Si vous utilisez
melt(...)
avec les valeurs par défaut, comme ci-dessus, il crée un bloc de données avec deux colonnes:$value
contient les données réelles, et$variable
contient les noms de la colonne (dans les starting bloc de données) que ces données sont venus. Comparerwt
etgg
et je pense que vous verrez ce que je veux dire.Donc, ici, nous utilisons
value
pour l'axe des x, et le groupe de la base de données survariable
.