ggplot2修饰图例的那些事

作者: R语言数据分析指南 | 来源:发表于2021-08-26 21:22 被阅读0次

绘图中经常需要对图片进行精细调整,图例的调整尤其重要;本节来详细介绍调整图例的细节

安装R包

安装{tidyverse},如果对tidyverse不了解请查看 往期 tidyverse合集

package.list=c("tidyverse")

for (package in package.list) {
  if (!require(package,character.only=T, quietly=T)) {
    install.packages(package)
    library(package, character.only=T)
  }
}

注:上面这段代码会同时下载并加载R包

依然还是使用我们熟悉的iris数据集合

iris %>% as_tibble()
# A tibble: 150 x 5
   Sepal.Length Sepal.Width Petal.Length Petal.Width Species
          <dbl>       <dbl>        <dbl>       <dbl> <fct>  
 1          5.1         3.5          1.4         0.2 setosa 
 2          4.9         3            1.4         0.2 setosa 
 3          4.7         3.2          1.3         0.2 setosa 
 4          4.6         3.1          1.5         0.2 setosa 
 5          5           3.6          1.4         0.2 setosa 
 6          5.4         3.9          1.7         0.4 setosa 
 7          4.6         3.4          1.4         0.3 setosa 
 8          5           3.4          1.5         0.2 setosa 
 9          4.4         2.9          1.4         0.2 setosa 
10          4.9         3.1          1.5         0.1 setosa 

根据iris数据集绘制boxplot

p <- iris %>% pivot_longer(-Species) %>% 
  mutate(name=as.factor(name)) %>% 
  ggplot(aes(name,value,fill=Species))+
  stat_boxplot(geom="errorbar",
               position=position_dodge(width=0.8),width=0.2)+
  geom_boxplot(position=position_dodge(width =0.8))+
  labs(caption = "2021-8-26")+
  theme(panel.grid.major=element_blank(), # 移除主网格线
        panel.grid.minor=element_blank(), # 移除次网格线
        panel.background = element_blank(), # 设置背景为空
        axis.title.x=element_blank(), # 设置X标题为空
        axis.title.y=element_blank(), # 设置Y标题为空
        axis.text.x=element_text(color="blue",margin = margin(t = 5)), # 设置X轴文本颜色
        axis.text.y=element_text(color="black",margin = margin(r = 5)), # 设置y轴文本颜色
        axis.ticks.x=element_line(color="red",size=2), # 设置X轴刻度条颜色
        axis.ticks.length.x = unit(-.2, "cm"),  # 设置X轴刻度长度及方向
        panel.border = element_rect(linetype = "dashed",fill = NA), # 定义边框线条类型
        axis.line.x.bottom = element_line(linetype="solid"), # 定义x轴线条类型
        plot.margin=unit(c(0.5,0.5,0.5,0.5),units=,"cm"), # 定义图边距离
        plot.caption = element_text(size = 12, face = "italic", # 设置脚注
          color = "#606F7B", margin = margin(t = 12)))

上面的代码我们对图例以外的theme进行了全面的调整,下面我们主要来对图例进行调整

定义图例位置

p1 <- p + theme(legend.position = "top")+ # 设置图例顶部
  guides(fill = guide_legend(direction = "horizontal"))+ # 图例水平放置
         guides(fill=guide_legend(nrow=3, byrow=TRUE)) # 图例拆分3行

p1
p2 <- p + theme(legend.title = element_blank(), # 图例标题为空
          legend.key=element_blank(),   # 图例键为空
          legend.text = element_text(color="black",size=10), # 定义图例文本
          legend.spacing.x=unit(0.1,'cm'), # 定义文本书平距离
          legend.key.width=unit(0.5,'cm'), # 定义图例水平大小
          legend.key.height=unit(0.5,'cm'), # 定义图例垂直大小
          legend.background=element_blank(), # 设置背景为空
          legend.box.background=element_rect(colour = "black"), # 图例绘制边框
          legend.box.margin = margin(1,1,1,1)) # 设置图例边距
p2 + theme(legend.justification = c("right","bottom"))

放置图例到图内

p2 + theme(legend.position = c(1, 1), legend.justification = c(1, 1))

喜欢的小伙伴欢迎关注我的公众号

R语言数据分析指南,持续分享数据可视化的经典案例及一些生信知识,希望对大家有所帮助

相关文章

  • ggplot2修饰图例的那些事

    绘图中经常需要对图片进行精细调整,图例的调整尤其重要;本节来详细介绍调整图例的细节 安装R包 安装{tidyver...

  • ggplot2-图例篇

    ggplot2中图例基础: ggplot2会自动生成图例,我们可以对图例进行删改。 library(ggplot2...

  • 初识R语言—ggplot2作图

    from 阿雷边学边教 初识ggplot2 ggplot2要素主要包括:背景、坐标轴、图形、标题、图例、分面、文本...

  • ggplot2学习(五)

    ggplot2基础(5)——配色与图例 参考《R数据可视化手册》、《R绘图:一文了解ggplot2颜色的设置[ht...

  • R语言——ggplot2图形拼接

    R语言——ggplot2图形拼接 绘图 图片拼接 method 1 method 2 method 3 —— 图例...

  • ggplot2图例

    https://www.jianshu.com/p/f47db40d0605

  • ggplot2图例设置

    ggplot2对图例的设置主要为guides()功能下的guide_colorbar()和guide_legend...

  • ggplot2图例系统

    连续型图例的修改 对于图例的修改是先试用guides函数。然后制定修改那个图例。再制定图例是离散型还是连续性 比如...

  • 【r<-方案|分享】魔性的ggplot2,多个图例时顺序会

    今天尝试解决使用ggplot2画图时的一个问题,图例不按规矩出牌。 ggplot2的作者们在测试时发现更新版本也出...

  • 代码库4-ggplot2代码

    将“ excel式”数据转换为“ggplot2式”数据 对UMAP横纵坐标进行简化 散点图设置图例颜色和大小范围 ...

网友评论

    本文标题:ggplot2修饰图例的那些事

    本文链接:https://www.haomeiwen.com/subject/kfbuiltx.html