美文网首页R语言做图绘图技巧
ggplot2给图像添加花括号

ggplot2给图像添加花括号

作者: R语言数据分析指南 | 来源:发表于2021-07-04 18:52 被阅读0次

本节介绍如何给图像添加花括号用于数据注释,喜欢的小伙伴欢迎关注收藏,更多精彩内容敬请期待

加载R包

library(tidyverse)
library(pBrackets)
library(glue)
library(ggtext)

定义函数

bracketsGrob <- function(...){
  l <- list(...)
  e <- new.env()
  e$l <- l
  grid:::recordGrob(  {
    do.call(grid.brackets, l)
  }, e)
}

数据可视化

p <- iris %>% group_by(Species) %>%
  summarise(mean_Sepal.Length=mean(Sepal.Length),
            sd_Sepal.Length=sd(Sepal.Length)) %>% 
  ggplot(aes(Species, mean_Sepal.Length)) +
    geom_col(aes(fill=Species),width=0.5) +
    scale_y_continuous(limits=c(0,9),expand=c(0,0)) +
    theme_minimal() +
    labs(x = "Species",y = "mean_Sepal.Length",
      title = "The infamous Iris plot", caption = "2021-7-4") +
    theme(axis.title.x = element_markdown(color="red",vjust=0.5),
      axis.line = element_line(color = "#3D4852"),
      axis.ticks = element_line(color = "#3D4852"),
      panel.grid.major.y = element_line(color = "#DAE1E7"),
      panel.grid.major.x = element_blank(),
      plot.title = element_text(size = 20, face = "bold",
        margin = margin(b = 30)),
      plot.margin = unit(rep(1, 4),"cm"),
      axis.text = element_text(size = 13, color = "#22292F"),
      axis.title = element_text(size = 12, hjust = 1),
      axis.title.y = element_text(margin = margin(r = 12)),
      axis.text.y = element_text(margin = margin(r = 5)),
      axis.text.x = element_text(margin = margin(t = 5)),
      plot.caption = element_text(
        size = 12, face = "italic",
        color = "#606F7B", margin = margin(t = 12)),
      legend.position="top")+
    scale_x_discrete(limits=c("setosa","virginica","versicolor"))+
    scale_fill_brewer(palette="Blues")

定义括号位置

b1 <- bracketsGrob(x1=0.1,y1=0.1,x2=0.1,y2=0.72,h=0.025, 
                   lwd=2,col="black")

b2 <- bracketsGrob(x1=0.2,y1=0.95,x2=0.5,y2=0.95,
                   h=0.05,lwd=2, col="black")

b3 <- bracketsGrob(x1=0.5,y1=0.08,x2=0.81,y2=0.08,
                   h=-0.05,lwd=2, col="black")

b4 <- bracketsGrob(x1=0.9,y1=0.1,x2=0.9,y2=0.95,
                   h=-0.05,lwd=2, col="black")
p + annotation_custom(b1)+
  annotation_custom(b2)+
  annotation_custom(b3)+ 
  annotation_custom(b4)+
  scale_y_continuous(expand=c(0.1,0))

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

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

相关文章

  • ggplot2给图像添加花括号

    本节介绍如何给图像添加花括号用于数据注释,喜欢的小伙伴欢迎关注收藏,更多精彩内容敬请期待 加载R包 定义函数 数据...

  • ES6箭头函数常见错误

    1.如果函数内只有一个表达式,可以省略花括号,return也需要同时省略,如果不省略花括号,则必须添加return

  • 给ggplot2添加gif

    本节介绍如何给ggplot2对象添加gif动态图,喜欢的小伙伴可以关注我的公众号R语言数据分析指南,持续分享更多优...

  • CSS 编码规约

    基本规约 【推荐】缩进使用两个空格 在每个声明块的左花括号前添加一个空格 【推荐】声明块的右花括号应当单独成行 每...

  • 如何给iMindMap添加图像

    相信大家都看过琼瑶的经典作品还珠格格吧,里面的小燕子虽然目不识丁,但是她能够通过画图的方式向紫薇解释了自己被误认的...

  • leetCode进阶算法题+解析(八十八)

    使括号有效的最少添加 题目:给定一个由 '(' 和 ')' 括号组成的字符串 S,我们需要添加最少的括号( '('...

  • tensorflow给训练图像添加噪声

    import tensorflow as tf import cv2 import os import numpy...

  • UI(四十一)滤镜

    *滤镜:给图像添加效果 一、介绍: 1、框架介绍 (1)CoreImage现在自动导入了 (2)是一个图像框架 它...

  • iOS - 滤镜

    *滤镜:给图像添加效果 一、介绍: 1、框架介绍 (1)CoreImage现在自动导入了 (2)是一个图像框架它基...

  • markdown 花括号

    花括号 1、普通左花括号 普通左括号,方式1(推荐)$$大括号示例\begin{cases}内容1 \\内容展示2...

网友评论

    本文标题:ggplot2给图像添加花括号

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