最近有人在公众号后台留言问到这个问题,今天的推文介绍一下ggplot2做堆积柱形图并添加误差线的办法
'''
堆积柱形图添加误差线
'''
getwd()
library(ggplot2)
library(dplyr)
library(see)
df<-read.csv("penguins.csv")
head(df)
df %>% na.omit() %>%
group_by(species,sex) %>%
summarise(mean_value=mean(bill_length_mm),
sd_value=sd(bill_length_mm)) -> df1
df1
df1 %>%
group_by(species) %>%
mutate(new_col=cumsum(mean_value)) -> df2
df2$sex<-factor(df2$sex,
levels = c("male","female"))
ggplot(data=df2,aes(x=species,
y=mean_value,
fill=sex))+
geom_bar(position = "stack",stat="identity")+
geom_errorbar(aes(ymin=new_col-sd_value,
ymax=new_col+sd_value),
width=0.1)+
scale_y_continuous(expand = c(0,0),
limits = c(0,100))+
scale_fill_material_d()+
theme_bw()+
labs(x=NULL,y="ABCD")
image.png
这个是R语言里自带的数据集,我将其写出到一个文件里,部分数据如下
image.png
我们只用到其中的三列
df<-read.csv("penguins.csv")
head(df)
df %>% na.omit() %>%
group_by(species,sex) %>%
summarise(mean_value=mean(bill_length_mm),
sd_value=sd(bill_length_mm)) -> df1
df1
df1 %>%
group_by(species) %>%
mutate(new_col=cumsum(mean_value)) -> df2
df2$sex<-factor(df2$sex,
levels = c("male","female"))
ggplot(data=df2,aes(x=species,
y=mean_value,
fill=sex))+
geom_bar(position = "stack",stat="identity")+
geom_errorbar(aes(ymin=new_col-sd_value,
ymax=new_col+sd_value),
width=0.1)+
scale_y_continuous(expand = c(0,0),
limits = c(0,100))+
scale_fill_material_d()+
theme_bw()+
labs(x=NULL,y="ABCD")
画图代码在今天推文的第三条视频中会有介绍,这里就不用文字来解释了
今天的推文完整示例数据和代码可以在第二条推文的留言区获取(第二条推文是一个广告)
欢迎大家关注我的公众号
小明的数据分析笔记本
小明的数据分析笔记本 公众号 主要分享:1、R语言和python做数据分析和数据可视化的简单小例子;2、园艺植物相关转录组学、基因组学、群体遗传学文献阅读笔记;3、生物信息学入门学习资料及自己的学习笔记!