ggplot分組散點(diǎn)圖-坐標(biāo)軸截?cái)?添加四分位圖-顯著性檢驗(yàn)

近日在《The new england journal o f medicine》雜志看到一篇文章的圖,如下,這種圖應(yīng)該是用GraphPad prism做的,圖的特點(diǎn)是散點(diǎn)統(tǒng)計(jì)圖,仔細(xì)觀察中間還展示了平均值和四分位數(shù),坐標(biāo)軸也是截?cái)嗟?。這里我們使用R來(lái)做一下。

image.png

(Reference:A Novel Circulating MicroRNA for the Detection of Acute Myocarditis)

示例數(shù)據(jù)及注釋代碼已上傳群文件!

首先讀入數(shù)據(jù),包含表達(dá)值和分組:


setwd("E:/生物信息學(xué)/ggplot坐標(biāo)軸截?cái)?)
A <- read.csv("Exp.csv", header = T)
library(ggplot2)
library(forcats)
library(ggpubr)
A$GeneSymbol <- as.factor(A$GeneSymbol)
A$GeneSymbol <- fct_inorder(A$GeneSymbol)

計(jì)算四分位數(shù):

B <- A %>% 
  group_by(GeneSymbol) %>% 
  mutate(upper =  quantile(S100A12, 0.75),
         lower = quantile(S100A12, 0.25),
         mean = mean(S100A12),
         median = median(S100A12))

設(shè)置需要比較的分組:


my_comparisons1 <- list(c("Asymptomatic", "Mild")) 
my_comparisons2 <- list(c("Asymptomatic", "Severe"))
my_comparisons3 <- list(c("Asymptomatic", "Critical"))

ggplot作圖:


p <- ggplot(A, aes(GeneSymbol, S100A12, 
              shape=GeneSymbol, fill=GeneSymbol))+
  geom_jitter(size=3, position = position_jitter(0.2))+
  scale_shape_manual(values = c(21,24,25,22))+
  scale_fill_manual(values=c("grey",
                                 "#0073B5",
                                 "#C9543B",
                                 "#E59F3F"))+
  geom_errorbar(data=B, aes(ymin = lower, 
                            ymax = upper),width = 0.2,size=0.5)+
  stat_summary(fun = "mean",
               geom = "crossbar",
               mapping = aes(ymin=..y..,ymax=..y..),
               width=0.4,
               size=0.3)+
  theme(panel.grid.major = element_blank(),
        panel.grid.minor = element_blank(),
        axis.line=element_line(colour="black"),
        axis.title.x = element_blank(),
        axis.title.y = element_blank(),
        axis.text.x = element_text(size = 14,angle = 45,
                                   vjust = 1,hjust = 1, 
                                   color = 'black',face="bold"),
        axis.text.y = element_text(size = 12, color = 'black'),
        plot.title = element_text(hjust = 0.5,size=15,face="bold"),
        legend.position = "NA")+
  ggtitle("S100A2")+
  stat_compare_means(method="t.test",hide.ns = F,
                     comparisons =c(my_comparisons1,my_comparisons2,my_comparisons3),
                     label="p.signif",
                     bracket.size=0.8,
                     size=6)
image.png

坐標(biāo)軸截?cái)啵泻芏嗪瘮?shù)可以實(shí)現(xiàn),這里演示兩種:


install.packages("gg.gap")
library(gg.gap)
gg.gap(plot=p,
       segments=c(5,10),
       ylim=c(0,850),
       tick_width = c(1,100))

還有g(shù)gbreak:

install.packages("ggbreak")
library(ggbreak)

p+scale_y_cut(breaks = 5,
              which = c(1,3),
              scales = c(3,0.5),
              space = 0.1)
image.png

總體可以,像文章中的要做很多數(shù)據(jù)的時(shí)候,可以使用循環(huán)作圖。當(dāng)然了,一般情況還是建議用prism做就可以了,因?yàn)檫€是比較方便!

看完了。覺(jué)得分享有用的話,幫忙點(diǎn)個(gè)贊,分享一下再走唄!

更多精彩請(qǐng)關(guān)注我的公眾號(hào)《KS科研分享與服務(wù)》!

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

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