雙向條圖的繪制(同時(shí)展示上調(diào)/下調(diào)差異基因數(shù))


單細(xì)胞繪圖系列:


適合于同時(shí)展示不同組樣本上調(diào)和下調(diào)基因數(shù),和棒棒糖圖/啞鈴圖異曲同工

# 加載R包,
library(ggplot2)
library(reshape2)

# 讀取雙向柱形圖演示數(shù)據(jù)
df= read.delim("https://www.bioladder.cn/shiny/zyp/bioladder2/model/ggplot2/DoublePositionBarPlot/demo.txt")   
head(df)
#          X Up Down
# 1 Pathway1 35   14
# 2 Pathway2 27   10
# 3 Pathway3 58   93
# 4 Pathway4 24   82
# 5 Pathway5  4   71
# 6 Pathway6 58   79

用自己的數(shù)據(jù)繪圖時(shí),把數(shù)據(jù)整理成上面df的格式即可。

# 把數(shù)據(jù)轉(zhuǎn)換成ggplot常用的類型(長數(shù)據(jù))
df = melt(df)                    # melt出自reshape2包
head(df)                         # 查看轉(zhuǎn)換完成的數(shù)據(jù)的前幾行
#          X variable value
# 1 Pathway1       Up    35
# 2 Pathway2       Up    27
# 3 Pathway3       Up    58
# 4 Pathway4       Up    24
# 5 Pathway5       Up     4
# 6 Pathway6       Up    58

# 繪圖
df$X <- factor(df$X ,levels = unique(df$X))
ggplot(df, aes(
  x = X,             
  y = ifelse(variable == "Up", value, -value),  # 判斷分組情況,將兩個(gè)柱子畫在0的兩側(cè)
  fill = variable)) +
  theme_bw()+
  geom_bar(stat = 'identity')+                                # 畫柱形圖
  coord_flip()+                                               # x軸與y軸互換位置
  geom_text(                                                  # 在圖形上加上數(shù)字標(biāo)簽
    aes(label=value,                                          # 標(biāo)簽的值(數(shù)據(jù)框的第三列)
        # vjust = ifelse(variable == "Up", -0.5, 1),          # 垂直位置。如果沒有coord_flip(),則可以取消這行注釋
        hjust = ifelse(variable == "Up", -0.4, 1.1)           # 水平位置
    ),
    size=2                                                    # 標(biāo)簽大小
    
  )+
  scale_y_continuous(                                         # 調(diào)整y軸
    labels = abs,                                             # 刻度設(shè)置為絕對(duì)值
    expand = expansion(mult = c(0.1, 0.1)))+                  # 在y軸的兩側(cè),留下一部分的空白位置,防止加標(biāo)簽的時(shí)候,顯示不全
  scale_x_discrete(limits = rev(levels(df$X)))+               #將x軸倒序,讓pathway1在上面
  scale_fill_manual(values = c("#F08080","#9370DB"))+         #更改顏色
  labs(title="Regulated genes", x="Pathways", y="Number of genes")+ #設(shè)置標(biāo)題和橫縱坐標(biāo)標(biāo)簽
  theme(plot.title = element_text(hjust = 0.5))               #標(biāo)題居中
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

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