我正在尝试绘制不同部门使用的计算机速率的堆叠条形图,并详细说明每个条形中的 PC 类型(以便每个部门 type1+type2+type3=tot_rate)。我有一个看起来像这样的数据框:
dat=read.table(text = "Tot_rate Type1 Type2 Type3
DPT1 72 50 12 10
DPT2 80 30 20 30
DPT3 92 54 14 24", header = TRUE)
我试图用原始数据绘制我的条形图,但现在获得带有百分比的条形图非常重要,但我似乎无法理解如何做到这一点。
这就是我认为我可以做到的方式,但它不起作用
p<-ggplot(dat, aes(x=row.names(dat), y=dat$Tot_rate, fill=data[,2:ncol(dat)])) + geom_bar(stat="identity")+theme_minimal()+xlab("") + ylab("PC rate")+geom_abline(slope=0, intercept=90, col = "red",lty=2) + theme(axis.text.x = element_text(angle = 90, hjust = 1))
p
当我尝试上面的代码时,我得到:
Don't know how to automatically pick scale for object of type data.frame. Defaulting to continuous.
Error: Aesthetics must be either length 1 or the same as the data (9): fill
你能帮忙吗?谢谢你,莉安娜
library(reshape2)
dat=read.table(text = "Department Tot_rate Type1 Type2 Type3
DPT1 72 50 12 10
DPT2 80 30 20 30
DPT3 92 54 14 24", header = TRUE)
long_dat <- dat[-2] %>% gather(type,number,Type1:Type3,-c("Department"))
首先,我重新整理了您拥有的数据:我将部门放在一列中,并将您的数据从宽格式重新整理为长格式(删除了此处不需要的 tot_rate)。
p <- ggplot(data=long_dat,aes(x=Department,y=number,fill=type)) +
geom_bar(position = "fill",stat = "identity")
p
要按百分比缩放条形图,我们使用set的position
参数geom_bar
为position=fill
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句