Données :
df <- data.frame(
type = c("T", "F", "P", "T", "F", "P", "T", "F", "P", "T", "F", "P"),
size = c("50%", "50%", "50%", "100%", "100%", "100%", "150%", "150%", "150%", "200%", "200%", "200%"),
amount = c(48.4, 48.1, 46.8, 25.9, 26, 24.9, 21.1, 21.4, 20.1, 20.8, 21.5, 16.5)
)
J'ai besoin de tracer un graphique à barres des données ci-dessus en utilisant ggplot (axe x -> type
, axe y -> amount
, groupe par size
). Lorsque j'utilise le code suivant, je n'obtiens pas la variable type
et ainsi que size
dans l'ordre indiqué dans les données. Veuillez voir la figure. J'ai utilisé le code suivant pour cela.
ggplot(df, aes(type, amount , fill=type, group=type, shape=type, facets=size)) +
geom_col(width=0.5, position = position_dodge(width=0.6)) +
facet_grid(.~size) +
theme_bw() +
scale_fill_manual(values = c("darkblue","steelblue1","steelblue4"),
labels = c("T", "F", "P"))
.
Pour résoudre le problème de l'ordre, j'ai utilisé une méthode factorielle pour la variable "type" en utilisant ce qui suit. Veuillez également consulter la figure.
temp$new = factor(temp$type, levels=c("T","F","P"), labels=c("T","F","P"))
Cependant, maintenant je ne sais pas comment fixer l'ordre pour la variable size
. Il devrait être de 50%, 100%. 150%, et 200%.