ggplot2绘制包含文本的自定义条形图

本节来介绍如何通过geom_segment函数来自定义绘制条形图

library(tidyverse)
library(ggtext)
library(glue)
library(ggsci)
data <- tibble(term = c("A","B","C","D"),
                      interest = c(5, 12, 2, 18),
                      x = rep(0, 4),
                      y = 0:3*-0.3) %>%
  rowwise() %>%
  mutate(color = if_else(term == "A", "firebrick",
                         sample(grey.colors(1000),1)))
ticks <- tibble(x = seq(0, 20, 5),xend = x,
                y = -1.1,yend = -1.12)
ggplot(data,aes(x=0-0.3,y=y)) +
  geom_text(label = c("2021-7","2021-6","2021-5","2021-4"), 
            size=4, hjust = 1.1, vjust = 0.5)+
  geom_segment(aes(x = x,xend=interest,y=y,
                   yend = y,color=color),
               size =20,alpha=0.5,show.legend = FALSE)+
  geom_text(aes(label=term,x=interest,y=y,color=color),
                hjust = 0,size=4,vjust = 0.5,show.legend = F)+
  geom_segment(y = -1.1, yend=-1.1,x = 0,xend = 20, size = 1)+
  geom_segment(x = 0, xend = 0, y = -1.1, yend =0.5)+
  geom_segment(data = ticks, aes(x = x, xend = xend,
                                 y = y, yend = yend))+
  geom_text(data =ticks, aes(x = x, y = yend, label = seq(0,20,5)),
            vjust = 1.1) +
  scale_color_lancet()+
  labs(x = NULL,y = NULL)+
  expand_limits(x = c(-4,20), y = c(-1.2, 0.5))+
  theme_minimal()+
  theme(axis.text.x=element_blank(),
        axis.text.y=element_blank(),
        panel.grid.major=element_blank(),
        panel.grid.minor=element_blank())

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

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

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

推荐阅读更多精彩内容

  • Tao Yan 简介 条形图可以说是我们最常用的数据可视化方法了,通常用于展示不同分类条件下(在x轴上)某个数值型...
    taoyan阅读 9,441评论 0 11
  • 转载自 作者:悦光阴 出处:http://www.cnblogs.com/ljhdo/ 使用geom_bar()函...
    onlyme_862a阅读 4,973评论 0 11
  • 写在前面 ggplot2 是一个功能强大且灵活的R包 ,由Hadley Wickham 编写,其用于生成优雅的图...
    Boer223阅读 28,355评论 0 67
  • 作者:严涛浙江大学作物遗传育种在读研究生(生物信息学方向)伪码农,R语言爱好者,爱开源 ggplot2学习笔记之图...
    Dylan的迪阅读 2,725评论 0 6
  • 我是黑夜里大雨纷飞的人啊 1 “又到一年六月,有人笑有人哭,有人欢乐有人忧愁,有人惊喜有人失落,有的觉得收获满满有...
    陌忘宇阅读 8,624评论 28 53