簡體   English   中英

R 疊條 Plot

[英]R Stacked Bar Plot

data1=data.frame("Grade"=c(1,1,1,2,2,2,3,3,3),
"Class"=c(1,2,3,1,2,3,1,2,3),
"Score"=c(6,9,9,7,7,4,9,6,6))

如果這已經發布但我沒有看到它,我深表歉意。 我希望准備一個堆疊條 plot X 軸是“等級”,每個等級是 1 條。 每個條都包含三種顏色陰影,因為存在三個類別(“類別”)。 最后,條形的高度是“分數”,它總是從低 class 開始到高。 所以它看起來像這樣,但這不是適當的規模

在此處輸入圖像描述

我們可以使用xtabs將數據轉換為寬格式,然后應用barplot

barplot(xtabs(Score ~ Grade + Class, data1), legend = TRUE,
         col = c('yellow', 'red', 'orange'))

或使用ggplot

library(dplyr)
library(ggplot2)
data1 %>% 
   mutate_at(vars(Grade, Class), factor) %>%
   ggplot(aes(x = Grade, y = Score, fill = Class)) + 
          geom_col()

在此處輸入圖像描述


如果我們要為“類”排序,請轉換為基於“分數”值以該順序指定的levelsfactor

data1 %>% 
   mutate(Class = factor(Class, levels = unique(Class[order(Score)])), 
          Grade = factor(Grade)) %>%  
   ggplot(aes(x = Grade, y = Score, fill = Class)) + 
           geom_col()

暫無
暫無

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

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