簡體   English   中英

ggplot2:如何將geom_text帶到欄的前面?

[英]ggplot2: How to bring geom_text in front of bar?

我想在圖形中使用geom_text()但它顯示在我的條形圖后面。

如何將其顯示在欄的前面,以及如何將總金額顯示為geom_text()

您將在我的數據集下面找到

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

更改幾何的順序,例如:

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

基於問題的最新信息更新


您的數據中缺少“ PRODUCTS”列。 沒有它,我的答案是這樣的(如果沒有它們,則應安裝data.tabletidyverse軟件包:

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
    )

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM