ggplot2: geom_bar avec le groupe, position_dodge et de remplissage
Je suis en train de générer un barplot tels que les x-axes est par le patient à chaque patient ayant de multiples échantillons. Ainsi, par exemple (à l'aide de la mtcars de données comme un modèle de ce que les données ressemblerait):
library("ggplot2")
ggplot(mtcars, aes(x = factor(cyl), group = factor(gear))) +
geom_bar(position = position_dodge(width = 0.8), binwidth = 25) +
xlab("Patient") +
ylab("Number of Mutations per Patient Sample")
Ce serait de produire quelque chose comme ceci:
Avec chaque barplot représentant un échantillon de chaque patient.
Je veux ajouter des informations supplémentaires sur chaque échantillon de patient en utilisant des couleurs pour remplir le barplots (par exemple, différents types de mutations dans chaque échantillon de patient). Je pensais que je pouvais préciser le fond de paramètre comme ceci:
ggplot(mtcars, aes(x = factor(cyl), group = factor(gear), fill = factor(vs))) +
geom_bar(position = position_dodge(width = 0.8), binwidth = 25) +
xlab("Patient") +
ylab("Number of Mutations per Patient Sample")
Mais ce n'est pas de produire des "empilés barplots" pour chaque échantillon de patient barplot. Je suppose que c'est parce que le position_dodge() est définie. Est-il de toute façon de contourner ce problème? Fondamentalement, ce que je veux, c'est:
ggplot(mtcars, aes(x = factor(cyl), fill = factor(vs))) +
geom_bar() +
xlab("Patient") +
ylab("Number of Mutations per Patient Sample")
Mais avec ces couleurs disponibles dans la première parcelle, j'ai énumérés. Est-ce possible avec ggplot2?
- Possible double
- Vous êtes de droite. C'est à peu près la même question sauf que je fais à l'aide de la "le groupe de paramètres". Mais le problème énumérés à l'impossibilité d'utiliser la pile et la dodge dans le même temps, s'applique à ces deux questions.
Vous devez vous connecter pour publier un commentaire.
Je pense que les facettes sont une approximation la plus proche de ce que vous semblez être à la recherche pour:
Je n'ai rien trouvé dans le bug tracker de ggplot2.
facet_wrap(~sample)
ne le regroupement par exemple de la façon dont j'avais besoin. Thx!J'ai piraté autour de quelques fois par la superposition de plusieurs geom_cols sur le dessus les uns des autres dans l'ordre je préfère. Par exemple, le code
M'a permis de produire de la fonctionnalité que vous recherchez sans facettage. Vous remarquerez que j'ai mis le calque d'arrière-plan de la valeur de y à 1. Pour ajouter plus de couches, vous pouvez simplement cumulativement somme de vos variables.
Image de la parcelle:
Si je comprends votre question correctement, vous voulez passer de l'aes() dans votre geom_bar couche. Cela vous permettra de passer un remplissage esthétique. Vous pouvez alors placer vos barres comme "l'esquive" ou "remplissage" en fonction de la façon dont vous souhaitez afficher les données.
Un court exemple, est inscrit ici:
Résultant de l'intrigue: http://imgur.com/ApUJ4p2 (désolé S/O ne me permet pas de poster des images encore)
Espère que ça aide!
Je suppose, ma réponse à ce post va vous aider à construire le graphique avec de multiples empilées les barres verticales pour chaque patient ...
Couches axes ggplot?