ggplot进阶:截断坐标轴的柱形图(带误差线)

本文介绍如何使用R语言中的ggplot2包绘制带有误差线的条形图,并展示了如何自定义图表主题,包括图例位置、字体样式、坐标轴等细节。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

library("ggplot2")
library("ggbreak")
library(RColorBrewer)

# 主题 ----------------------------------------------------------------------

#自定义图表主题,对图表主题做精细调整;
top.mar=0.2
right.mar=0.2
bottom.mar=0.2
left.mar=0.2
#设置图例的位置、大小和样式,并对字体样式、坐标轴的粗细、颜色、刻度长度等进行限定;
##这里通过legend.position将图例置于绘图区域的左上方;
mytheme<-theme_classic()+
  theme(text=element_text(family = "sans",colour ="black",size = 12),
        legend.text=element_text(colour ="black",size = 8),
        legend.title=element_text(colour ="black",size = 10),
        legend.key.size=unit(4,units = "mm"),
        legend.position=c(0.10,0.88),
        axis.line = element_line(size =1,colour = "black"),
        axis.ticks = element_line(size = 1,colour = "black"),
        axis.ticks.length = unit(1.5,units = "mm"),
        plot.margin=unit(x=c(top.mar,right.mar,bottom.mar,left.mar),
                         units="inches"))

# 绘图 ----------------------------------------------------------------------


dt <- read_excel('图2b.xlsx')
colnames(dt)
dt$day <- factor(dt$day,levels=dt$day)
p <- ggplot(dt,aes(x=day,y=value,fill=factor(day)))
p1 <- p+geom_bar(position = "dodge",
                 stat = "identity",
                 width = 0.5,show.legend = FALSE)+
  geom_errorbar(
    aes(
      x = day,
      ymin = value - sd,
      ymax = value + sd
    ),
    # 添加误差线
    width = 0.1,
    color = 'black',
    position = position_dodge(0.5),
    # 设置误差线颜色,宽度等
    size = 0.8
  )+
  scale_y_continuous(limits = c(0, 120),
                     breaks = c(0,5,10,15,20),
                     label = c("0","5","10","15","20"))+
  scale_y_break(c(20, 60),scales = "free",
                ticklabels=c(60,80,100,120),
                expand=expansion(add = c(0, 0)),
                space = 1)+
  mytheme+
  scale_fill_manual(values = brewer.pal(7,'Dark2'))+
  theme(axis.text = element_text(colour = 'black',size = 20),
        text = element_text(colour = 'black',size = 20))+
  labs(x = '',
       y ='')+
  theme(axis.line.y.right  = element_line(colour = "white"),
        axis.text.y.right  = element_text(colour = 'white'),
        axis.ticks.y.right  = element_line(colour = 'white'))
p1

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值