復現《Cell》圖表:雙側柱狀圖及坐標軸設置|ComplexHeatmap圖例設置

更多精彩內容可關注我的公眾號《KS科研分享與服務》!!!

image.png

(Reference:Proteogenomic characterization of pancreatic ductal adenocarcinoma)

還是復現《cell》文章的圖標,是一個對于臨床特征的展示,圖形是柱狀圖結合分組注釋,圖的內容比較豐富,還是比較復雜的。不知道原文作者是如何做的,這里我是結合ggplot2做柱狀圖,Complexheatmap做的熱圖注釋。

從這個圖要學的內容有:

1、雙側柱狀圖的做法及其坐標軸的設置。

2、熱圖其他參數在熱圖系列已經出現,這里學習legend的位置設置。

復現圖片

image.png

注釋代碼及數據已上傳群文件

這里作圖數據一部分是結合原文給出的補充材料,一部分是我自己創造的。柱狀圖和熱圖是兩個文件。首先完成柱狀圖的部分:

setwd("E:/生物信息學/復現Cell雙向柱狀圖加注釋")
A <- read.csv("AA.csv", header = T)
library(ggplot2)
library(tidyverse)

A<-gather(A,key=Sample,value=value,-锘縞ase_id)
A[which(A$Sample == 'Myeloid'),'value'] <- 
  A[which(A$Sample == 'Myeloid'), 'value'] * -1   


p1 <-ggplot(A,aes(锘縞ase_id,value,fill=Sample))+
  geom_col()+
  theme_bw()+
  theme(panel.grid.major=element_blank(),
        panel.grid.minor=element_blank(),
        panel.border = element_blank(),
        legend.title = element_blank(),
        axis.text = element_text(color="black",size=10),
        axis.text.x = element_blank(),
        axis.ticks.x = element_blank(),
        axis.line.y = element_line(color = "black",, size=0.5))+
  scale_y_continuous(breaks = seq(-10, 10, 10), 
                     labels = as.character(abs(seq(-10, 10, 10))), 
                     limits = c(-10, 10))+
  labs(x='', y='')+
  geom_hline(yintercept = 0,size=0.5)+
  scale_fill_manual(values = c("#D08E8E","#89B9D8"))
  p1
image.png

然后利用ComplexHetamap完成注釋和離散熱圖的繪制。(也許有其他的辦法能夠更好的注釋,但是這里我想用這個熱圖)


B <- read.csv("BB.csv", header = T)
B1 <- B[,c(1,6)]
B1 <- t(B1)
B1 <- as.data.frame(B1)
colnames(B1) <- B1[1,]
B1 <- B1[-1,]
library(ComplexHeatmap)


B2 <- B[,1:5]
rownames(B2) <- B2[, 1]
B2 <- B2[,-1]
top_anno=HeatmapAnnotation(df=B2,
                           border = T,
                           show_annotation_name = T,
                           col = list(histology_diagnosis=c('PDAC'='#006699',
                                              'Adenosquamous carcinoma'='red')))



p2 <- Heatmap(B1,
        cluster_rows = F,
        cluster_columns = F,
        show_column_names = T,
        show_row_names = T,
        column_title = NULL,
        heatmap_legend_param = list(
          title='Disease\nassociation'),
        col = c("#1084A4",
                "#8D4873"),
        border = 'black',
        row_names_gp = gpar(fontsize = 12),
        column_names_gp = gpar(fontsize = 8),
        top_annotation = top_anno)


p3 <- draw(p2, heatmap_legend_side = "bottom", 
     annotation_legend_side = "bottom",merge_legend = TRUE)
image.png

最后就是組合,還是強烈建議使用AI組合吧,很方便!小伙伴有更好的辦法也可私信分享!如果覺得分享有用,點個贊,分享至朋友圈、在看。感謝支持!

image.png

看完了還不知道關注一下!

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容