R语言绘制堆积条形图及着色

R语言绘制堆积条形图及着色

                                                              参考书籍:R数据可视化手册

1.  使用ggplot()函数和geom_bar()绘制堆积条形图

library(gcookbook)

library(ggplot2)

cabbage_exp

ggplot(cabbage_exp,aes(x=Date,y=Weight,fill=Cultivar))+

geom_bar(stat="identity")


                                                                           原始数据

                                                               堆积条形图

2.  guides()函数对图例进行调整

library(gcookbook)

library(ggplot2)

ggplot(cabbage_exp,aes(x=Date,y=Weight,fill=Cultivar))+

geom_bar(stat="identity")+guides(fill=guide_legend(reverse= TRUE))


                                                                图例没有调整

                                                                图例调整后

3.   使用scale_fill_brewer()函数对堆积图进行着色

library(gcookbook)

library(ggplot2)

ggplot(cabbage_exp,aes(x=Date,y=Weight,fill=Cultivar))+

geom_bar(stat="identity",colour="black")+

guides(fill=guide_legend(reverse =TRUE))+

scale_fill_brewer(palette = 1)


ggplot(cabbage_exp,aes(x=Date,y=Weight,fill=Cultivar))+

geom_bar(stat="identity",colour="black")+

guides(fill=guide_legend(reverse=FALSE))+

scale_fill_brewer(palette =2)


                                                            reverse = TRUE, palette = 1

                                                         reverse =FALSE, palette =2   


4.  geom_text求数据标签 之前,要先使用 plyr()函数中arrange()函数对每组条形对应的数据进行累积求和。

#添加数据标签

library(plyr)

#根据日期和性别对数据进行排序

ce<-arrange(cabbage_exp,Date,Cultivar)

#计算累积量

cee<-ddply(ce,"Date",transform,label_y=cumsum(Weight))

cee

ggplot(cee,aes(x=Date,y=Weight,fill=Cultivar))+

geom_bar(stat="identity",colour="black")+

guides(fill=guide_legend(reverse=FALSE))+

geom_text(aes(y=label_y,label=Weight),vjust=1.5,colour="White")+

scale_fill_brewer(palette ="Pastel1")

#将数据标签置于条形中部

library(plyr)

cee<-arrange(cabbage_exp,Date,Cultivar)

#计算Y轴的位置,将数据标签置于条形中部

cee1<-ddply(ce,"Date",transform,label_y=cumsum(Weight)-0.5*Weight)

ggplot(cee1,aes(x=Date,y=Weight,fill=Cultivar))+

geom_bar(stat="identity",colour="black")+

guides(fill=guide_legend(reverse=FALSE))+

geom_text(aes(y=label_y,label=Weight),vjust=1.5,colour="White")+

scale_fill_brewer(palette ="Pastel1")


#使用paste()函数将数据标签加上单位

library(plyr)

cee<-arrange(cabbage_exp,Date,Cultivar)

cee1<-ddply(ce,"Date",transform,label_y=cumsum(Weight)-0.5*Weight)

ggplot(ce,aes(x=Date,y=Weight,fill=Cultivar))+

geom_bar(stat="identity",colour="black")+

geom_text(aes(y=label_y,label=paste(format(Weight,nsmall=2),"kg")),size=4)+

guides(fill=guide_legend(reverse =FALSE))+

scale_fill_brewer(palette="Pastel1")


                                                          数据标签在条形下方

                                                        数据标签置于条形中部

                                                                  数据标签加单位


自我总结:

重点注意:添加数据标签需要先要对每组条形数据进行累积求和。

ggplot(data,aes(x,y,fill)函数+geom_bar(stat="identity")函数----绘制堆积条形图

guides(fill=guide_legend(reverse= TRUE/FALSE))-----对图例进行修改

  scale_fill_brewer(palette = 1)-----颜色设置

library(plyr)

cee<-arrange(data,X,fill)

fill表示分类变量

cee<-ddply(cee,"x",transform,label_y=cumsum(y))----

cee<-ddply(cee,"x",transform,label_y=cumsum(y)-0.5*y)---数据标签置于中部

geom_text(aes(y=label_y,label=Weight),vjust=1.5,colour="White")----数据标签

geom_text(aes(y=label_y,label=paste(format(Weight,nsmall=2),"kg")),size=4)---添加数据标签添加单位

以上是我对堆积图的总结,可能有错误,希望大家批评指正。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

友情链接更多精彩内容