image.png
在一个交流群看到有人问这个图怎么实现,今天的推文我们来介绍一下如何用R预言的ggplot2实现上面这个图。
首先是准备作图数据,作图数据整理成如下格式,我这里用excel存储
image.png
读取数据
代码语言:javascript复制library(readxl)
library(ggplot2)
library(tidyverse)
dat<-read_excel("data/20231114/data.xlsx")
dat
作图代码
代码语言:javascript复制ggplot()
geom_segment(data=data.frame(y=seq(0,200,by=20),
yend=seq(0,200,by=20)),
aes(x=0.5,xend=5.5,y=y,yend=yend),
color="gray")
geom_bar(data=dat,aes(x=x,y=value,fill="Total value"),stat="identity")
geom_bar(stat="identity",position = "dodge",
data=dat,aes(x=x,y=value,fill=group))
theme_bw(base_size = 20)
theme(panel.grid = element_blank(),
legend.position = "top",
legend.title = element_blank(),
panel.border = element_blank(),
axis.ticks = element_blank(),
axis.line.x = element_line())
scale_y_continuous(expand = expansion(mult=c(0,0)),
limits = c(0,200),
breaks = seq(0,200,by=20))
scale_x_discrete(labels=c(2000,"01","02","03","04"))
labs(x=NULL,y=NULL)
geom_text(data=dat %>% group_by(x) %>% summarise(sum_value=sum(value)),
aes(x=x,y=sum_value,label=sum_value),
vjust=-1,size=5)
scale_fill_manual(values = c("#f8766d","#a3a500","#00bf7d","#00b0f6","gray"))
image.png
背后灰色的柱子是堆积柱形图,只不过没有按照分组添加颜色,统一填充了同样的颜色灰色。前面的柱子是簇状柱形图
示例数据和代码可以给推文打赏1元获取
欢迎大家关注我的公众号
小明的数据分析笔记本
小明的数据分析笔记本 公众号 主要分享:1、R语言和python做数据分析和数据可视化的简单小例子;2、园艺植物相关转录组学、基因组学、群体遗传学文献阅读笔记;3、生物信息学入门学习资料及自己的学习笔记!
image.png