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

安装、加载包

#设置工作环境
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
image.png

图例设置

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

p+theme(legend.position = 'none')#关闭全部图例
image.png
p+guides(color='none')#关闭部分图例,如图例中散点颜色的部分图例
p+scale_color_discrete(guide='none')#关闭部分图例,如图例中散点颜色的部分图例
image.png

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

p+theme(legend.position = 'top')#控制图例放置在图中上下左右('top','bottom','right','left')
image.png
p+theme(legend.position = c(0.95,0.6))#通过设置位置坐标控制图例位置,范围为0~1
image.png

3、图例方向——通过legend.direction函数或者guides中的guide_legend控制:

p+theme(legend.direction = 'horizontal')#有垂直与竖直两种方向,‘horizontal’,‘vertical’
image.png
#精准设置
p+guides(color=guide_legend(ncol = 3,#根据ncol或者nrow设置图例显示行数或列数(设置一个即可)
                            byrow = T,#默认F,表示按照列填充
                            reverse = T))#默认F,表示升序填充,反之则降序
image.png

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

p+theme(legend.title = element_blank())#删除所有图例
image.png
p+labs(color=NULL)#删除所有图例
p+scale_color_discrete(name=NULL)#只删除部分图例
image.png

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

p+theme(legend.key.size = unit(20,"point"))#增加符号周围的区域
image.png
p+guides(color = guide_legend(override.aes = list(size = 5)))#改变符号大小
image.png

6、图例框的填充颜色

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

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))#边框色
image.png

更多精彩欢迎大家关注微信公众号【科研后花园】!!!

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容