柱状图加误差线、柱状图、R语言画柱状图

关注公众号“R医学”,获取R语言绘图、建模代码资源

晓晓
2023-07-17
#误差线的下限和上限必须是画图之前计算
  
  
#加载函数包
library(ggplot2)

#创建数据集
data <- data.frame(
  name=letters[1:5],
  value=sample(seq(4,15),5),
  sd=c(1,0.2,3,2,4)
)

#查看数据集
data
##   name value  sd
## 1    a    15 1.0
## 2    b     7 0.2
## 3    c     9 3.0
## 4    d    14 2.0
## 5    e    11 4.0
#柱状图+误差线(最基础)
ggplot(data) +
  geom_bar( aes(x=name, y=value), 
            stat="identity", 
            fill="skyblue", 
            alpha=0.7) +
  geom_errorbar( aes(x=name, ymin=value-sd, ymax=value+sd), 
                 width=0.4, 
                 colour="orange", 
                 alpha=0.9,
                 size=1.3)
## Warning: Using `size` aesthetic for lines was deprecated in ggplot2 3.4.0.
## ℹ Please use `linewidth` instead.
## This warning is displayed once every 8 hours.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.

#水平形式
ggplot(data) +
  geom_bar( aes(x=name, y=value), stat="identity", fill="skyblue", alpha=0.5) +
  geom_errorbar( aes(x=name, ymin=value-sd, ymax=value+sd), width=0.4, colour="orange", alpha=0.9, size=1.3) +
  coord_flip()

#矩形形式的误差线
ggplot(data) +
  geom_bar( aes(x=name, y=value), stat="identity", fill="skyblue", alpha=0.5) +
  geom_crossbar( aes(x=name, y=value, ymin=value-sd, ymax=value+sd), width=0.4, colour="orange", alpha=0.9, size=1.3)

#直线形式的误差线
ggplot(data) +
  geom_bar( aes(x=name, y=value), stat="identity", fill="skyblue", alpha=0.5) +
  geom_linerange( aes(x=name, ymin=value-sd, ymax=value+sd), colour="orange", alpha=0.9, size=1.3)

#直线+点形式的误差线
ggplot(data) +
  geom_bar( aes(x=name, y=value), stat="identity", fill="skyblue", alpha=0.5) +
  geom_pointrange( aes(x=name, y=value, ymin=value-sd, ymax=value+sd), colour="orange", alpha=0.9, size=1.3)

##柱状图要分组

#创建数据集
data <- data.frame(
  name=c("a","b","c","a","b","c"),
  value=sample(seq(4,15),6),
  sd=c(1,1,1,1,1,1),
  group=c("A","A","A","B","B","B")
)

#查看数据集
data
##   name value sd group
## 1    a    12  1     A
## 2    b    11  1     A
## 3    c     7  1     A
## 4    a     5  1     B
## 5    b    14  1     B
## 6    c     8  1     B
#绘制分组柱状图
ggplot(data, aes(x =name, y = value, fill = group)) +
  geom_bar(stat = "identity",
           position = position_dodge(0.75),
           width=0.73)+
  geom_errorbar( aes(x=name, ymin=value-sd, ymax=value+sd,group=group), 
                 position = position_dodge(0.75),
                 width=0.4, 
                 colour="orange", 
                 alpha=0.9,
                 size=1.3)+
  coord_cartesian(ylim=c(3,16))+    #坐标从非0开始的设置方法
  labs(title = "", x = "类别", y = "值", fill = "组别")+
  scale_fill_hue(c = 40) +
  theme(legend.position="none")+
  theme_bw()+ 
  theme(panel.grid.major = element_blank(),
               panel.grid.minor = element_blank())+
  theme(axis.title.x = element_text(size = 16),
               axis.title.y = element_text(size = 14),
               axis.text.x = element_text(size = 14),
               axis.text.y = element_text(size = 14), #刻度
               legend.title = element_text(size = 14), #最右边的图例字体
               legend.key.size = unit(1.5, "lines")) #图例大小的调整,这里设置为占两个格子

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值