查看原文
其他

R可视化——ggplot2添加图例及图例相关设置

王志山 科研后花园 2023-09-08


安装、加载包

#设置工作环境rm(list=ls())setwd("D:\\桌面\\ggplot2添加图例及图例相关设置")#加载包# install.packages("ggpubr")# install.packages('ggplot2')# install.packages('reshape2')#加载包library(ggpubr)library(ggplot2)library(reshape2)

加载数据并绘图

#读取数据df <- read.table(file="Genus.txt",sep="\t",header=T,check.names=FALSE,row.names = 1)#转换数据df$Tax=rownames(df)df1=melt(df)colnames(df1)=c("Tax","Samples","value")
#绘图p <- ggplot(df1, aes(x = Samples, y = Tax, size = value, color=Samples)) + geom_point(aes(size=value))+ theme(panel.background = element_blank(), panel.grid.major = element_line(color = "gray"),#网格线条颜色 panel.border = element_rect(color="black",fill=NA))#边框色p

图例设置

1、图例关闭——三种方法

p+theme(legend.position = 'none')#关闭全部图例

p+guides(color='none')#关闭部分图例,如图例中散点颜色的部分图例p+scale_color_discrete(guide='none')#关闭部分图例,如图例中散点颜色的部分图例


2、图例位置,可以通过theme中的legend.position函数控制图例位置

p+theme(legend.position = 'top')#控制图例放置在图中上下左右('top','bottom','right','left')

p+theme(legend.position = c(0.95,0.6))#通过设置位置坐标控制图例位置,范围为0~1


3、图例方向——通过legend.direction函数或者guides中的guide_legend控制:
p+theme(legend.direction = 'horizontal')#有垂直与竖直两种方向,‘horizontal’,‘vertical’

#精准设置p+guides(color=guide_legend(ncol = 3,#根据ncol或者nrow设置图例显示行数或列数(设置一个即可) byrow = T,#默认F,表示按照列填充 reverse = T))#默认F,表示升序填充,反之则降序


4、图例标题去除——三种方式

p+theme(legend.title = element_blank())#删除所有图例

p+labs(color=NULL)#删除所有图例p+scale_color_discrete(name=NULL)#只删除部分图例


5、图例符号周围区域大小及符号本身大小设置

p+theme(legend.key.size = unit(20,"point"))#增加符号周围的区域

p+guides(color = guide_legend(override.aes = list(size = 5)))#改变符号大小


6、图例框的填充颜色

p+theme(legend.key = element_rect(fill = 'green'))


7、自定义图例标签顺序——通过将数据中的相应列数据转换为factor型数据进而调整显示顺序

df1$Samples=factor(df1$Samples,levels = c('B','A','D','C','F','G','H','I','J','E','K'))#定义顺序ggplot(df1, aes(x = Samples, y = Tax, size = value, color=Samples)) + geom_point(aes(size=value))+ theme(panel.background = element_blank(), panel.grid.major = element_line(color = "gray"),#网格线条颜色 panel.border = element_rect(color="black",fill=NA))#边框色

我就知道你“在看”

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存