簡體   English   中英

使用ggplot在R中並排繪制兩個分組的變量

[英]Plotting two grouped variables side to side in R using ggplot

我有一個名為mydata的數據mydata 以下是相關列的示例:

Backlog.Item.Type     Item.Created.To.Closed.Days   Item.Created.To.Finished.Days         
User Story            67                            84
Task                  14                            17
Task                  9                             10
Epic                  105                           NA
User Story            56                            59 
Bug                   5                             NA

現在,我要做到的是以下內容:我想借此為平均Item.Created.To.Closed.Days柱以及作為Item.Created.To.Finished.Days列,按分組Backlog.Item.Type ,然后將它們彼此相鄰繪制。 要計算我使用的平均值,該方法有效:

mydata %>%
  group_by(Backlog.Item.Type) %>%
  summarise_at(vars(Item.Created.to.Closed.Days),
               funs(mean(Item.Created.to.Closed.Days, na.rm = TRUE)))

對於繪圖部分,我嘗試了類似的方法

mydata.long <- melt(mydata)

ggplot(mydata.long,
       aes(Backlog.Item.Type, value, fill = variable)) +
 geom_bar(stat = "identity", position = "dodge")

但是我似乎無法使其正常工作。 我還要注意,我只想為兩列都繪制Backlog.Item.Type == 'User Story'Backlog.Item.Type == 'Task' 用視覺表示,這就是我要完成的工作:

請原諒我可怕的繪畫技巧! 我對顏色沒有任何偏愛,我只需要完成它即可:D預先感謝,我希望我已經足夠清楚,並以可以理解的方式提出了我的問題!

假設您提供的圖形包括整個數據集,因此不應該與您提供的樣本數據相對應,那么您可以執行以下操作:

mydata=mydata %>% group_by(Backlog.Item.Type) %>% summarise(Item.Created.To.Closed.Days=
                        mean(Item.Created.To.Closed.Days,na.rm=T),
                        Item.Created.To.Finished=mean(Item.Created.To.Finished,na.rm=T)) 

mydata=mydata[complete.cases(mydata),]%>%melt()
ggplot(mydata,aes(x=Backlog.Item.Type,y=value,fill=variable))+geom_bar(stat = "identity", position = "dodge")

在此處輸入圖片說明

暫無
暫無

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

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