R语言ggplot2作图离散变量更改坐标轴范围

2021-08-31 17:46:27 浏览数 (1)

首先是示例数据

image.png

使用R语言的ggplot2做一个热图
代码语言:javascript复制
#install.packages("see")
df<-read.csv("20210809_example.csv")
library(ggplot2)
library(see)
ggplot(data=df,aes(x=gene_name,y=variable)) 
  geom_tile(aes(fill=value)) 
  scale_fill_social_c()

image.png

增加y轴的上下空白
代码语言:javascript复制
ggplot(data=df,aes(x=gene_name,y=variable)) 
  geom_tile(aes(fill=value)) 
  scale_fill_social_c() 
  scale_y_discrete(expand=expansion(mult=1))

image.png

增加下方的空白
代码语言:javascript复制
ggplot(data=df,aes(x=gene_name,y=variable)) 
  geom_tile(aes(fill=value)) 
  scale_fill_social_c() 
  scale_y_discrete(expand=expansion(mult=c(1,0)))

image.png

如果是要更改x轴左右的间距把scale_y_discrete()换成scale_x_discrete()就可以了

这个有啥用,其中一个用途是画环状热图的时候可以增加中间的空白区域

比如默认环状热图

代码语言:javascript复制
ggplot(data=df,aes(x=gene_name,y=variable)) 
  geom_tile(aes(fill=value)) 
  coord_polar() 
  scale_fill_social_c() 
  theme_void()

image.png

设置中心空白

代码语言:javascript复制
ggplot(data=df,aes(x=gene_name,y=variable)) 
  geom_tile(aes(fill=value)) 
  coord_polar() 
  scale_fill_social_c() 
  theme_void() 
  scale_y_discrete(expand=expansion(mult=c(1,0)))

image.png

增加开口

代码语言:javascript复制
ggplot(data=df,aes(x=gene_name,y=variable)) 
  geom_tile(aes(fill=value)) 
  coord_polar() 
  scale_fill_social_c() 
  theme_void() 
  scale_y_discrete(expand=expansion(mult=c(1,0))) 
  scale_x_discrete(expand=expansion(mult=c(0,0.2)))

image.png

欢迎大家关注我的公众号

小明的数据分析笔记本

小明的数据分析笔记本 公众号 主要分享:1、R语言和python做数据分析和数据可视化的简单小例子;2、园艺植物相关转录组学、基因组学、群体遗传学文献阅读笔记;3、生物信息学入门学习资料及自己的学习笔记!

0 人点赞