我有以下数据集
prg<-c('BRK1','BRK2','MAN1','QN')
comp<-c(5,0,12,9)
reg<-c(0,5,0,0)
term<-c(3,0,0,0)
df<-data.frame(prg,comp,reg,term)
df
prg comp reg term
1 BRK1 5 0 3
2 BRK2 0 5 0
3 MAN1 12 0 0
4 QN 9 0 0
基本上,我想使用ggplplot
绘制条形图,其中prg
在x轴上,每个prg
都有三个条形,形式为{{1} } comp
和reg
代表相应的计数。
我该怎么做?
答案 0 :(得分:0)
您必须在绘制之前将其融化
Administrators
library(tidyverse)
df.melted <- df %>% melt(id.var="prg")
# prg variable value
# 1 BRK1 comp 5
# 2 BRK2 comp 0
# 3 MAN1 comp 12
# 4 QN comp 9
# 5 BRK1 reg 0
# 6 BRK2 reg 5
# 7 MAN1 reg 0
# 8 QN reg 0
# 9 BRK1 term 3
# 10 BRK2 term 0
# 11 MAN1 term 0
# 12 QN term 0
答案 1 :(得分:0)
我同意里卡多·萨波特(Ricardo Saporta),但我可以补充一点,如果没有位置=“闪避”,整个事情将很难理解。
library(tidyverse)
df.tidy <- gather(df, key, value, - prg)
ggplot(data = df.tidy, aes(x = factor(prg), y = value, col = key)) +
geom_bar(stat = "identity", position = "dodge")
这允许条形图相互隔开和区分。
答案 2 :(得分:0)