Chenrui的个人博客分享 http://blog.sciencenet.cn/u/CR15928558859

博文

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

已有 1410 次阅读 2023-4-4 16:29 |个人分类: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")

 

                         原始数据                             堆积条形图

I~9K[V@9S]$~GA@TGA61%@U.png


1.jpeg


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))

 

                      图例没有调整                     图例调整后

2.jpeg


3.jpeg

 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.jpeg

Rplot.jpeg

 

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

#添加数据标签

library(plyr)

library(ggplot2)

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

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)

ce<-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)

ce<-arrange(cabbage_exp,Date,Cultivar)

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")+

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")

 

       数据标签在条形下方       数据标签置于条形中部          数据标签加单位

6.jpeg

7.jpeg

8.jpeg


自我总结:

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

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)---添加数据标签添加单位

 

 




https://blog.sciencenet.cn/blog-3511394-1382963.html

上一篇:R 语言绘制频度条形图及其美化
下一篇:R 语言绘制百分比堆积条形图及着色
收藏 IP: 218.6.128.*| 热度|

0

该博文允许注册用户评论 请点击登录 评论 (0 个评论)

数据加载中...
扫一扫,分享此博文

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-9-27 10:35

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部