J'ai besoin d'aide pour organiser les groupes et les étiquettes de mon graphe, voici mon code pour l'instant:
alphabet <- c("A", "A", "A", "A", "A", "A", "C", "C", "C", "C", "C", "C", "B", "B", "B", "B", "B","B") amount <- c("1", "2", "3", "4", "5", "6", "1", "2", "3", "4", "5", "6", "1", "2", "3", "4", "5", "6") percentage <- c(30.3, 25.8, 21.2, 9.1, 9.1, 4.5, 23.1, 21.5, 9.2, 23.1, 13.9, 9.2, 27.8, 17.5, 14.3, 20.6, 14.3, 5.6) DataFrame.test <- data.frame(alphabet, amount, percentage) DataFrame.test library(ggplot2) data <- read.table( header=TRUE, text='alphabet amount percentage 1 A 1 30.3 2 A 2 25.8 3 A 3 21.2 4 A 4 9.1 5 A 5 9.1 6 A 6 4.5 7 C 1 23.1 8 C 2 21.5 9 C 3 9.2 10 C 4 23.1 11 C 5 13.9 12 C 6 9.2 13 B 1 27.8 14 B 2 17.5 15 B 3 14.3 16 B 4 20.6 17 B 5 14.3 18 B 6 5.6') bargraph <- ggplot(data, aes(x=amount, y=percentage, fill = alphabet)) + geom_bar(stat="identity", position = position_dodge(0.70), width = 0.65) + scale_fill_brewer(palette = "Set1") + labs(x = "amount", y= "percentage (%)") bargraph + theme_minimal()
qui me donne le graphe suivant:
Pour le moment, les groupes sont classés par ordre alphabétique mais je voudrais qu'ils soient classés ( A, C, B). De plus, je n'ai que des étiquettes pour mes groupes pour 2, 4 et 6, mais je veux aussi des étiquettes pour 1, 3 et 5.
Toute aide serait très appréciée.
p>
3 Réponses :
Vous pouvez modifier votre ensemble de données comme ceci:
data$amount <- as.character(data$amount) data$alphabet <- factor(data$alphabet, levels = c("A", "C", "B"))
Merci, j'avais encore besoin d'ajouter ", a ordonné = TRUE" pour que cela fonctionne mais mon graphique a l'air bien maintenant.
vous devez transformer l'alphabet et les variables de montant en variables de facteur et spécifier un ordre pour la variable d'alphabet. Comme ceci:
library(ggplot2) data <- read.table( header=TRUE, text='alphabet amount percentage 1 A 1 30.3 2 A 2 25.8 3 A 3 21.2 4 A 4 9.1 5 A 5 9.1 6 A 6 4.5 7 C 1 23.1 8 C 2 21.5 9 C 3 9.2 10 C 4 23.1 11 C 5 13.9 12 C 6 9.2 13 B 1 27.8 14 B 2 17.5 15 B 3 14.3 16 B 4 20.6 17 B 5 14.3 18 B 6 5.6') data$alphabet = factor(data$alphabet, levels = c('A', 'C', 'B'), ordered = TRUE) data$amount = factor(data$amount, levels = 1:6, labels = c('label 1', 'label 2', 'label 3', 'label 4', 'label 5', 'label 6')) bargraph <- ggplot(data, aes(x=amount, y=percentage, fill = alphabet)) + geom_bar(stat="identity", position = position_dodge(0.70), width = 0.65) + scale_fill_brewer(palette = "Set1") + labs(x = "amount", y= "percentage (%)") bargraph + theme_minimal()
DataFrame.test <- DataFrame.test %>% mutate(alphabet = factor(alphabet, levels = c("A", "C", "B")), amount = factor(amount, levels = 1:6)) bargraph <- ggplot(DataFrame.test, aes(amount, percentage, fill = alphabet)) + geom_bar(stat = "identity", position = position_dodge(0.70), width = 0.65) + scale_fill_brewer(palette = "Set1") + labs(x = "amount", y= "percentage (%)") bargraph + theme_minimal()