ggplot2绘制柱状图_分组柱状图步骤

#柱状图调节柱形宽度、柱形间距

#先准备三列,group_number为分组,name是x因变量,value是y轴自变量

#此代码中,图例为透明背景,且图例图案距离编名0.5cm(均可修改),

 theme(legend.title=element_text(size = 20,face = "bold",margin = margin(r=20)),
        legend.text=element_text(size = 20,face = "bold",margin = margin(r=20)),
        #legend.position=c(0.28, 0.78), #图例在绘图区域的位置
        #legend.position='top',#图例放在顶部
        legend.spacing.x = unit(0.5, 'cm'),

#柱状图无背景图#柱状图边框为黑色加粗

theme(panel.grid.major=element_line(colour=NA),
        panel.background = element_rect(fill = "transparent",colour = NA),
        plot.background = element_rect(fill = "transparent",colour = NA),
        panel.grid.minor = element_blank())+

#柱状图分组绘制

#柱状图调节柱形宽度、柱形间距

geom_bar(stat = "identity",
           position=position_dodge(0.9),
           width = 0.8,
           colour = "black",
           size=1.2)+#边框颜色为黑色

#柱状图上添加具体值,并调节值显示位置

geom_text(aes(y=value+0.5,label=value),#将weight赋值给每一列
            #vjust=1.2,#位置参数
            position = position_dodge(0.8),
            colour="black",
            size=10)+##颜色字体大小

#柱状图消除图形与x轴间空隙,且保留y轴空隙

scale_y_continuous(limits =c(0, 18) ,expand = c(0,0))+#消除与x轴的间隙

#选择自己喜欢的柱状颜色

scale_fill_manual(values = c("#FFB81CFF", "#007AC1FF"))+ #设置柱状图中间区域填充颜色

#输出表格参考大小:

 #完整代码 

install.packages('gcookbook')
install.packages('plyr')

library (ggplot2)
library(cowplot)#将图片组合在一起
library(gcookbook)#数据集
library(plyr)#后面用到ddply函数
library(ggplot2)#首次用需要先安装install.packages('ggplot2')
#如果报错也可以用这种方式安装install.packages("ggplot2", repos = "http://cran.r-project.org")
library(RColorBrewer)#首次用需要先安装install.packages('RColorBrewer')
library(ggpubr)#首次用需要先安装install.packages('ggpubr')
library(ggsignif)

Data1<-read.csv(file.choose())#选择你的文件,记得csv格式
head(Data1)#查看文件前六行,检查一下有没有问题

p1 <- ggplot(Data1,aes(x=name,y=value,fill=group_number))+
  geom_bar(stat = "identity",
           position=position_dodge(0.9),
           width = 0.8,
           colour = "black",
           size=1.2)+#边框颜色为黑色
  scale_fill_manual(values = c("#FFB81CFF", "#007AC1FF"))+ #设置柱状图中间区域填充颜色
  geom_text(aes(y=value+0.5,label=value),#将weight赋值给每一列
            #vjust=1.2,#位置参数
            position = position_dodge(0.8),
            colour="black",
            size=10)+##颜色字体大小
  scale_y_continuous(limits =c(0, 18) ,expand = c(0,0))+#消除与x轴的间隙
  theme(legend.title=element_text(size = 20,face = "bold",margin = margin(r=20)),
        legend.text=element_text(size = 20,face = "bold",margin = margin(r=20)),
        #legend.position=c(0.28, 0.78), #图例在绘图区域的位置
        #legend.position='top',#图例放在顶部
        legend.spacing.x = unit(0.5, 'cm'),
        legend.background = element_rect( linetype="solid"),
        axis.text.x=element_text(size = 20,hjust = 0.5,vjust = 0.5,face="bold"), #设置x轴刻度标签的字体属性
        axis.text.y=element_text( size = 20,face="bold"), #设置y轴刻度标签的字体属性
        axis.title.y=element_text( size = 20,face="bold"), #设置y轴的标题的字体属性
        axis.title.x=element_text(size = 20,face="bold"), #设置x轴的标题的字体属性
        axis.ticks = element_line(color='black',size = 2), #设置坐标轴颜色
        plot.title = element_text( size = 5,face="bold",hjust = 0.5), #设置总标题的字体属性
        #panel.grid.major=element_line(colour=NA),
        #panel.background = element_rect(fill = "transparent",colour = NA),
        #plot.background = element_rect(fill = "transparent",colour = NA),
        panel.border = element_rect(colour = "black",fill = "transparent",size = 2))+ #设置绘画边框颜色、宽度
  theme(panel.grid.major=element_line(colour=NA),
        panel.background = element_rect(fill = "transparent",colour = NA),
        plot.background = element_rect(fill = "transparent",colour = NA),
        panel.grid.minor = element_blank())+
  labs(x = 'treatment', y = 'Relative expression')
p1

#最终效果