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()