更多精彩内容可关注我的公众号《KS科研分享与服务》!!!
(Reference:Proteogenomic characterization of pancreatic ductal adenocarcinoma)
还是复现《cell》文章的图标,是一个对于临床特征的展示,图形是柱状图结合分组注释,图的内容比较丰富,还是比较复杂的。不知道原文作者是如何做的,这里我是结合ggplot2做柱状图,Complexheatmap做的热图注释。
从这个图要学的内容有:
1、双侧柱状图的做法及其坐标轴的设置。
2、热图其他参数在热图系列已经出现,这里学习legend的位置设置。
复现图片
注释代码及数据已上传群文件!
这里作图数据一部分是结合原文给出的补充材料,一部分是我自己创造的。柱状图和热图是两个文件。首先完成柱状图的部分:
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
然后利用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)
最后就是组合,还是强烈建议使用AI组合吧,很方便!小伙伴有更好的办法也可私信分享!如果觉得分享有用,点个赞,分享至朋友圈、在看。感谢支持!
看完了还不知道关注一下!