跟着小果展现数据的生动变化,轻松复现IF64.8文献中炫酷热力图,实现指定角度旋转!



公众号后台回复“111”
领取本篇代码、基因集或示例数据等文件
文件编号:240122

pp<-ggplot()+# 创建一个ggplot对象
geom_point(aes(x=1,y=1))+#添加散点图的几何对象
coord_cartesian(clip = "off")#设置坐标系为Cartesian坐标系
ppcowplot::ggdraw()+#创建一个ggdraw对象,用于绘制图形#将之前创建的ggplot对象pp转换为ggplotify对象,#指定旋转角度为-45度。#将前面定义的散点图进行了角度旋转的处理 cowplot::draw_plot(ggplotify::as.ggplot(pp,angle = -45), width = 0.5,height = 0.5,#设置绘制图形的宽度和高度为0.5#设置水平和垂直方向的对齐方式 hjust = -0.2,# vjust = -0.5)

library(readxl)


#添加文本标签library(tidyverse)dat %>% pull(x) %>% unique()#从数据集dat中提取x列的唯一值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添加路径的几何对象,用于绘制两个方框
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),#指定方框路径的x和y坐标
color="black",size=1)+#设置路径的颜色为黑色,大小为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

#修改配色###library(ggsci)library(scales) #用来展示颜色## 自然出版集团 (Nature Publishing Group) 风格的颜色方案mypal <- pal_npg("nrc", alpha = 0.7)(10)mypalshow_col(mypal,ncol = 5)#####之前创建的图形(带有两个方框的热力图)进行颜色和主题的调整#scale_fill_gradient2函数调整填充颜色的渐变p2+ scale_fill_gradient2(low = scales::muted("#DC0000B2"),#设置低值颜色为深红色,#使用muted函数调整颜色透明度 mid = "white",#设置中间值颜色为白色 high = scales::muted("#3C5488B2"),#设置高值颜色为深蓝色 midpoint = 0)+#设置颜色变化的中点为0#不显示图例theme(legend.position = "none") -> p3p3


#旋转45library(cowplot)ggdraw()+#创建一个ggdraw对象 draw_plot( ggplotify::as.ggplot(p4,angle = -45),#将之前创建的p4图形转换为ggplot对象,指定旋转角度为-45度 width = 0.7,height = 0.7,#设置插入图形的宽度和高度为0.7#设置插入图形的水平和垂直方向的对齐方式 hjust = -0.2, vjust = -0.1)+# annotate(geom = "text",#添加文本注释 x=0.5,y=0.2, label="Chromatin subcompartments" ) -> p5p5

#对之前创建的图形p2进行一些调整
p2+
scale_fill_gradient2(low = scales::muted("#DC0000B2"),
mid = "white",
high = scales::muted("#3C5488B2"),
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),#获取p3.1图形的图例
xmin = 0.1,xmax=0.9,#置插入图例的水平位置范围
ymin=0.1,ymax=0.2#设置插入图例的垂直位置范围
)-> p6
p6

#多个library(patchwork)p6+p6


定制生信分析
服务器租赁
扫码咨询小果


往期回顾
01 |
02 |
03 |
04 |