复现《Cell》图表:双侧柱状图及坐标轴设置,ComplexHeatmap图例设置

更多精彩内容可关注我的公众号《KS科研分享与服务》!!!

(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组合吧,很方便!小伙伴有更好的办法也可私信分享!如果觉得分享有用,点个赞,分享至朋友圈、在看。感谢支持!

看完了还不知道关注一下!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值