本节来介绍ggplot2绘制中图例设置方面的问题,通过一个热图的案例进行阐述。整个过程仅参考,希望对各位观众老爷能有所帮助。
ggplot2中的图例体系
❝在ggplot2中针对图例的自定义设置可通过guide与guides函数来完成,二者虽只有一字之差具体参数上也基本一致,但是使用时却也有些许不同。 ❞
guide函数作为scale_类函数中的一个内函数,通常配合比例尺函数一起使用,但是由于取其内含有众多的参数,因此在比例尺中使用则会显得代码比较臃肿,因此小编比较推荐单独使用guides函数来进行图例自定义。
「guides函数中常使用的主要有 guide_legend 和 guide_colourba」两类
- guide_legend:用于定义离散型数据图例
- guide_colourba:用于定义连续型数据图例
❝因此在使用前需针对图例所对应的几何对象来选择正确的函数,同时在实际绘图过程中图例绘制还存在一种情况,即数据为连续型但是在绘制图例将其定义为离散型。针对这种情况上方所列的两个函数就无法实现。这时就可使用「guide_colorsteps」函数来实现,该函数可将区域显示为单一恒定颜色,而不是从颜色条对应项中已知的渐变。下面就通过此函数来自定义设置图例 ❞
加载R包
代码语言:javascript复制library(tidyverse)
library(MetBrewer)
df <- read_tsv("data.tsv") %>% drop_na() %>%
pivot_longer(-gene)
df$gene <- factor(df$gene,levels = df$gene %>% unique() %>% rev())
df %>%
ggplot(.,aes(name,gene,color=value,fill=value))
geom_tile(color="black")
scale_x_discrete(expand=c(0,0),position = 'top')
scale_y_discrete(expand=c(0,0))
scale_fill_gradientn(colors=met.brewer("Cassatt1"))
labs(x=NULL,y=NULL)
theme(axis.text.x=element_blank(),
axis.text.y=element_text(color="black",size=8,face="italic"),
axis.ticks.x=element_blank(),
axis.ticks.y=element_blank(),
panel.background = element_blank(),
plot.background = element_blank(),
legend.spacing.x = unit(0.1,"cm"),
panel.spacing.x =unit(0.01,"cm"),
panel.border=element_rect(fill=NA,color="black",size=0.5,linetype="solid"),
plot.margin=unit(c(0.2,0.2,0.2,0.2),units="cm"))
# title.position 设置图例标题位置
guides(fill = guide_colorsteps(title.position = "top",
show.limits = TRUE), # 显示了数据的最小值和最大值
color="none") # 剔除颜色图例