R_柱狀圖(加誤差線,顯著性差異)

先放最終效果圖


結(jié)果圖
# bar_plot 2021/01/19
# 導入所需的包
library(ggplot2)
library(ggthemr)
library(ggsignif)
library(tidyverse)
library(dplyr)
library(ggpubr)
library(devEMF)

# 導入并處理數(shù)據(jù),需要兩張表,一個是原始匯總表格,另外一些是每一個測量數(shù)據(jù)的均值和標準差
data1 <- read.csv(file = "../all_enzymatic.txt", sep = "\t", header = T)
data2 <- dplyr::select(data1,1,3,4,5,6)

# SOD
data_SOD <- dplyr::select(data2,1,5)
SOD_mean <- data_SOD %>% 
  dplyr::group_by(group) %>% 
  dplyr::summarize(
    count=n(),
    mean = mean(SOD),
    sd = sd(SOD)
  )
data_SOD

SOD_mean
###################################################################
# 分析數(shù)據(jù),數(shù)據(jù)量比較少就可以不做了
#正態(tài)分布檢驗:用shapiro.test()
shapiro.test(data_SOD$SOD)    

#方差齊性檢驗:用bartlett.test()或者leveneTest()
bartlett.test(SOD~group,data = data_SOD)   #巴雷特檢驗

library(car)  #leveneTest()屬于car包
leveneTest(data_SOD$SOD~data_SOD$group)  #列文檢驗

compare_means(SOD~group,data = data_SOD,
               method = "anova") #顯著性計算
####################################################################
#####################################################################
plot_data1 <- SOD_mean
plot_data2 <- data_SOD
p4 <- ggplot()+ 
  geom_bar(data=plot_data1,mapping=aes(x=group,y=mean,fill=group), # fill填充
           position="dodge", # 柱狀圖格式
           stat="identity", # 數(shù)據(jù)格式
           width = 0.7)+  # 柱狀圖尺寸
  scale_fill_manual(values = c("#4E4E56", "#DA635D","#B1938B"))+ # 柱狀圖顏色
  geom_signif(data=plot_data2,mapping=aes(x=group,y=SOD), # 不同組別的顯著性
              comparisons = list(c("C", "HT"), # 哪些組進行比較
                                 c("HI", "HT")),
              annotation=c("**"), # 顯著性差異做標記
              map_signif_level=T, # T為顯著性,F(xiàn)為p value
              tip_length=c(0.04,0.04,0.05,0.05), # 修改顯著性那個線的長短
              y_position = c(4100,3000), # 設置顯著性線的位置高度
              size=1, # 修改線的粗細
              textsize = 10, # 修改*標記的大小
              test = "t.test")+ # 檢驗的類型
  geom_errorbar(data=plot_data1,mapping=aes(x = group,ymin = mean-sd, ymax = mean+sd), # 誤差線添加
                width = 0.1, #誤差線的寬度
                color = 'black', #顏色
                size=0.8)+ #粗細
  scale_y_continuous(limits =c(0, 4500) ,expand = c(0,0))+ # y軸的范圍
  theme_classic(  # 主題設置,這個是無線條主題
    base_line_size = 1 # 坐標軸的粗細
  )+
  labs(title="",x="",y="")+ # 添加標題,x軸,y軸內(nèi)容
  theme(plot.title = element_text(size = 20,
                                  colour = "red",
                                  hjust = 0.5),
        axis.title.y = element_text(size = 15, 
                                    # family = "myFont", 
                                    color = "black",
                                    face = "bold", 
                                    vjust = 1.9, 
                                    hjust = 0.5, 
                                    angle = 90),
        legend.title = element_text(color="black", # 修改圖例的標題
                                    size=15, 
                                    face="bold"),
        legend.text = element_text(color="black", # 設置圖例標簽文字
                                   size = 10, 
                                   face = "bold"),
        axis.text.x = element_text(size = 13,  # 修改X軸上字體大小,
                                   # family = "myFont", # 類型
                                   color = "black", # 顏色
                                   face = "bold", #  face取值:plain普通,bold加粗,italic斜體,bold.italic斜體加粗
                                   vjust = 0.5, # 位置
                                   hjust = 0.5, 
                                   angle = 0), #角度
        axis.text.y = element_text(size = 13,  # 修改y軸上字體大小,
                                   # family = "myFont", # 類型
                                   color = "black", # 顏色
                                   face = "bold", #  face取值:plain普通,bold加粗,italic斜體,bold.italic斜體加粗
                                   vjust = 0.5, # 位置
                                   hjust = 0.5, 
                                   angle = 0) #角度
        ) 
emf(file = "SOD.emf") # 打開一個矢量圖畫布,這種格式的圖片放在word里不會失真
print(p4) # 打印圖片
dev.off() #關閉畫布
最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容