前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >ggplot2实现哑铃图

ggplot2实现哑铃图

作者头像
生信编程日常
发布2020-05-18 15:46:33
6180
发布2020-05-18 15:46:33
举报

哑铃图(Dumbbell Chart),也叫DNA图。当我们想要比较不同指标不同组的情况可用多个“哑铃”表示。另外,如果想表示某一组在不同条件下的变化情况也可以用这种方法。哑铃图如下图所示:

在R中实现可以考虑用ggalt这个包(基于ggplot2)。以下实现基础作图:

代码语言:javascript
复制
library(ggalt)

health <- read.csv("https://raw.githubusercontent.com/selva86/datasets/master/health.csv")
health$Area <- factor(health$Area, levels=as.character(health$Area))
ggplot(health, aes(x=pct_2013, xend=pct_2014, y=Area)) + 
        geom_dumbbell()

进行一些小小的修饰:

代码语言:javascript
复制
ggplot(health, aes(x=pct_2013, xend=pct_2014, y=Area)) + 
        # 以下geom_segment是自己添加了x到xend之间的线,取代了之前默认的线;并且把颜色设置为灰色;
        geom_segment(aes(x=pct_2013, 
                         xend=pct_2014, 
                         y=Area, 
                         yend=Area), 
                     color="#b2b2b2", size=1.5)+
        # 设置哑铃的两端点的颜色和大小
        geom_dumbbell(size_x=3.5, 
                      size_xend = 3.5,
                      colour_x="#edae52", 
                      colour_xend = "#9fb059")+
        labs(x=NULL, y=NULL, 
             title="Dumbbell Chart", 
             subtitle="Pct Change: 2013 vs 2014")+
        # 添加文本信息
        geom_text(color="black", size=2, hjust=-0.5,
                  aes(x=pct_2013, label=pct_2013))+
        geom_text(aes(x=pct_2014, label=pct_2014), 
                  color="black", size=2, hjust=1.5)

最后加上 coord_flip() 可以将图片翻转为竖着的哑铃图。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档