論文
Whole-genome doubling drives oncogenic loss of chromatin segregation
https://www.nature.com/articles/s41586-023-05794-2#MOESM10
作圖數(shù)據(jù)都有粘捎,論文中的圖也很好看雕凹,抽時(shí)間復(fù)現(xiàn)
今天的推文復(fù)現(xiàn)一下論文中的Figure 1e 三角熱圖
ggplot2能夠做這種三角熱圖顷霹,但是怎么讓熱圖的尖朝上,之前還沒(méi)有嘗試過(guò),基本思路就是可以讓整個(gè)圖進(jìn)行旋轉(zhuǎn),查了一下怎么讓ggplot2整體旋轉(zhuǎn),很多都是借助grid包的語(yǔ)法來(lái)實(shí)現(xiàn)趟卸,但是grid的作圖我還不是很理解,找了好長(zhǎng)時(shí)間看有沒(méi)有g(shù)gplot2的擴(kuò)展包可以做氏义,找到了一個(gè)參考鏈接
http://www.reibang.com/p/802bdefa8feb
這里借助cowplot和ggplotify兩個(gè)R包
一個(gè)簡(jiǎn)單的小例子
library(ggplot2)
pp<-ggplot()+
geom_point(aes(x=1,y=1))+
coord_cartesian(clip = "off")
pp
cowplot::ggdraw()+
cowplot::draw_plot(ggplotify::as.ggplot(pp,angle = -45),
width = 0.5,height = 0.5,
hjust = -0.2,
vjust = -0.5)
然后用推文中的示例數(shù)據(jù)
其中一個(gè)小圖的部分示例數(shù)據(jù)
讀取數(shù)據(jù)
library(readxl)
#install.packages("rlang")
dat<-read_excel("data/20230327/Figure1d.xlsx")
dat
普通三角熱圖
library(ggplot2)
ggplot(data=dat,aes(x=x,y=y))+
geom_tile(aes(fill=log2(value)))+
coord_equal(clip = "off") -> p
p
添加文本標(biāo)簽
library(tidyverse)
dat %>% pull(x) %>% unique()
p+
geom_text(data=data.frame(x=1:8,y=0:7,label=dat %>% pull(x) %>% unique()),
aes(x=x,y=y,label=label),angle=90)+
theme_void() -> p1
p1
在指定的地方添加線段
p1+
geom_path(data=data.frame(x=c(0.5,0.5,4.5,4.5,3.5,3.5,2.5,2.5,1.5,1.5,0.5),
y=c(0.5,4.5,4.5,3.5,3.5,2.5,2.5,1.5,1.5,0.5,0.5)),
aes(x=x,y=y),
color="black",size=1)+
geom_path(data=data.frame(x=c(0.5,0.5,4.5,4.5,3.5,3.5,2.5,2.5,1.5,1.5,0.5)+4,
y=c(0.5,4.5,4.5,3.5,3.5,2.5,2.5,1.5,1.5,0.5,0.5)+4),
aes(x=x,y=y),
color="black",size=1) -> p2
p2
更改配色
p2+
scale_fill_gradient2(low = scales::muted("red"),
mid = "white",
high = scales::muted("blue"),
midpoint = 0)+
theme(legend.position = "none") -> p3
p3
添加一些額外的注釋
p3+
annotate(geom = "segment",x=0.4,xend=0.4,y=0.5,yend=4.5,
size=2,color="red")+
annotate(geom = "text",x=0.2,y=2.5,label="A",angle=45,size=5)+
annotate(geom = "segment",x=4.5,xend=8.5,y=8.6,yend=8.6,
size=2,color="blue")+
annotate(geom = "text",x=6.5,y=8.8,label="B",angle=45,size=5) -> p4
p4
最后順時(shí)針旋轉(zhuǎn)45度
library(cowplot)
ggdraw()+
draw_plot(ggplotify::as.ggplot(p4,angle = -45),
width = 0.7,height = 0.7,
hjust = -0.2,
vjust = -0.1)+
annotate(geom = "text",x=0.5,y=0.2,label="Chromatin subcompartments") -> p5
p5
最后再給添加一個(gè)圖例
p2+
scale_fill_gradient2(low = scales::muted("red"),
mid = "white",
high = scales::muted("blue"),
midpoint = 0)+
theme(legend.position = "bottom")+
guides(fill=guide_colorbar(title.position = "top",
title.hjust = 0.5,barwidth = 20)) -> p3.1
p5+
annotation_custom(grob = ggpubr::get_legend(p3.1),
xmin = 0.1,xmax=0.9,
ymin=0.1,ymax=0.2)
一直會(huì)有提示信息
還可以拼圖
library(patchwork)
p6+p6
示例數(shù)據(jù)和代碼可以給推文點(diǎn)贊锄列,然后點(diǎn)擊在看,最后留言獲取
歡迎大家關(guān)注我的公眾號(hào)
小明的數(shù)據(jù)分析筆記本
小明的數(shù)據(jù)分析筆記本 公眾號(hào) 主要分享:1惯悠、R語(yǔ)言和python做數(shù)據(jù)分析和數(shù)據(jù)可視化的簡(jiǎn)單小例子邻邮;2、園藝植物相關(guān)轉(zhuǎn)錄組學(xué)克婶、基因組學(xué)筒严、群體遺傳學(xué)文獻(xiàn)閱讀筆記;3情萤、生物信息學(xué)入門學(xué)習(xí)資料及自己的學(xué)習(xí)筆記鸭蛙!
微信公眾號(hào)好像又有改動(dòng),如果沒(méi)有將這個(gè)公眾號(hào)設(shè)為星標(biāo)的話筋岛,會(huì)經(jīng)常錯(cuò)過(guò)公眾號(hào)的推文娶视,個(gè)人建議將 小明的數(shù)據(jù)分析筆記本 公眾號(hào)添加星標(biāo),添加方法是