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

ggplot2 / ggpubr 实现发散型棒棒糖图

作者头像
生信编程日常
发布2020-05-08 17:11:31
1.9K0
发布2020-05-08 17:11:31
举报
文章被收录于专栏:生物信息学、python、R、linux

棒棒糖图 (Lollipop Chart),其实是一种特殊的barplot,只是将bar转变成了line和dot。效果如下两图所示:

1. ggplot2实现

以mtcars数据集为例:

代码语言:javascript
复制
library(ggplot2)
data(mtcars)
mtcars$cyl <- factor(mtcars$cyl)
mtcars <- mtcars[order(mtcars$mpg), ]
mtcars$name <-  rownames(mtcars)
mtcars$name <- factor(mtcars$name, levels = rownames(mtcars))

ggplot(mtcars, aes(x=name, y=mpg, color = cyl, label=mpg)) + 
  geom_point(stat='identity', size=6)  +
  geom_segment(aes(y = 0, 
                   x = name, 
                   yend = mpg, 
                   xend = name), 
               color = "gray") +
  geom_text(color="white", size=2) +
  labs(title="Lollipop Chart") + 
  theme_bw() + 
  coord_flip() 

可修改geom_segment(aes(y = 20))修改中间的基准线:

2. ggpubr实现
代码语言:javascript
复制
library(ggpubr)

ggdotchart(mtcars, x = "name", y = "mpg",
           color = "cyl",                               
           sorting = "ascending",     # ggpubr中可以直接排序                   
           add = "segments",                             
           xlab=""
)

rotate转变为垂直方向,group实现分组,dot.size修改点的大小:

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

ggdotchart(mtcars, x = "name", y = "mpg",
           color = "cyl",                               
           sorting = "ascending",                        
           add = "segments",                             
           xlab="", 
           rotate = TRUE,
           group = "cyl", 
           dot.size = 3 
           
)
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

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

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

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

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