Reputation: 3
I want to use geom_text()
my graph but it is shown behind my bargraphs.
How can I bring it in front of the bars and how to show the total amount as geom_text()
also?
you will find below my data set(edit)
BRNCH_NAME PRODUCTS FINAL_SCORE
1 A ANCH BILL 1998
2 B ANCH BILL 1216
7 G ANCH BILL 1220
8 H ANCH BILL 1217
16 A ANCH TICKET 1998
17 B ANCH TICKET 2331
18 C ANCH TICKET 0
19 D ANCH TICKET 0
20 E ANCH TICKET 0
21 F ANCH TICKET 0
22 G ANCH TICKET 1665
31 A ANCH SHOP 2331
32 B ANCH SHOP 1154
33 C ANCH SHOP 1165
34 D ANCH SHOP 1388
35 E ANCH SHOP 1265
ggplot(data = FINAL_SCORE_BAR,
aes(x = reorder(FINAL_SCORE_BAR$BRNCH_NAME, FINAL_SCORE_BAR$FINAL_SCORE),
y = FINAL_SCORE, fill = PRODUCTS, label = FINAL_SCORE)) +
geom_text(size = 3, position = position_stack(vjust = 0.5))+
labs(y = "HGA ALL FINAL SCORE", x = "ELEMENTS", face = "bold",
colour = "black", csize = 5) +
coord_flip() +
geom_bar(stat = "identity", position = "stack")+
theme(axis.text.x = element_text(size = 12, face = "bold"),
axis.text.y = element_text(size = 12, face = "bold")) +
scale_fill_brewer(palette = "Blues")
Upvotes: 0
Views: 2848
Reputation: 5580
Change the order of your geoms, e.g.:
ggplot(data = FINAL_SCORE_BAR,
aes(x = reorder(FINAL_SCORE_BAR$BRNCH_NAME, FINAL_SCORE_BAR$FINAL_SCORE),
y = FINAL_SCORE, fill = PRODUCTS, label = FINAL_SCORE)) +
labs(y = "HGA ALL FINAL SCORE", x = "ELEMENTS", face = "bold",
colour = "black", csize = 5) +
coord_flip() +
geom_bar(stat = "identity", position = "stack") +
theme(axis.text.x = element_text(size = 12, face = "bold"),
axis.text.y = element_text(size = 12, face = "bold")) +
scale_fill_brewer(palette = "Blues") +
# the order of geoms matters
geom_text(size = 3, position = position_stack(vjust = 0.5))
UPDATE based on the updated information in the question.
Column "PRODUCTS" is missing in your data. Without it my answer is this (you should instal data.table
and tidyverse
packages if you don't have them:
library(tidyverse)
FINAL_SCORE_BAR <-
data.table::fread(stringsAsFactors = TRUE,
'BRNCH_NAME ELEMENTS FINAL_SCORE
"A ANCH" BILL 1998
"B ANCH" BILL 1216
"G ANCH" BILL 1220
"H ANCH" BILL 1217
"A ANCH" TICKET 1998
"B ANCH" TICKET 2331
"C ANCH" TICKET 0
"D ANCH" TICKET 0
"E ANCH" TICKET 0
"F ANCH" TICKET 0
"G ANCH" TICKET 1665
"A ANCH" SHOP 2331
"B ANCH" SHOP 1154
"C ANCH" SHOP 1165
"D ANCH" SHOP 1388
"E ANCH" SHOP 1265')
FINAL_SCORE_BAR <- FINAL_SCORE_BAR %>%
mutate(BRNCH_NAME = reorder(BRNCH_NAME, FINAL_SCORE, FUN = mean))
my_sum <- FINAL_SCORE_BAR %>%
group_by(BRNCH_NAME) %>%
summarize(SUM_FINAL_SCORE = sum(FINAL_SCORE))
ggplot(data = FINAL_SCORE_BAR,
aes(x = BRNCH_NAME, y = FINAL_SCORE)) +
labs(y = "HGA ALL FINAL SCORE", x = "ELEMENTS", face = "bold",
colour = "black", csize = 5) +
coord_flip(ylim = c(0, 7500)) +
geom_bar(stat = "identity", position = "stack")+
theme(axis.text.x = element_text(size = 12, face = "bold"),
axis.text.y = element_text(size = 12, face = "bold")) +
scale_fill_brewer(palette = "Blues") +
# The sums:
geom_text(data = my_sum,
aes(x = BRNCH_NAME,
y = SUM_FINAL_SCORE,
label = SUM_FINAL_SCORE),
size = 3,
hjust = -0.2,
inherit.aes = FALSE
)
Upvotes: 1