前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >ggplot2之文本换行

ggplot2之文本换行

作者头像
生信编程日常
发布2020-04-01 16:31:35
3K0
发布2020-04-01 16:31:35
举报

在做基因富集时,有些通路特别长,以至于使图片的大小不好控制,这种情况可以用stringr包的str_wrap来完成文本自动换行。如使用clusterProfiler的barplot时,因为clusterProfiler是基于ggplot2,所以更改ggplot中scale_x_discrete或者scale_y_discrete

1.用到stringr包里的str_wrap函数
代码语言:javascript
复制
library(stringr)
library(ggplot2)
library(clusterProfiler)
 x = enrichGO(OrgDb="org.Hs.eg.db",gene = as.vector(gene_input$ENTREZID),ont = "BP", pvalueCutoff = 0.05, readable= TRUE)
p <- barplot(x) 
p 

效果图:

image.png

代码语言:javascript
复制
p + scale_x_discrete(labels=function(x) str_wrap(x, width=20))

image.png

如果是dotplot则需要改变scale_y_discrete

代码语言:javascript
复制
p <- dotplot(x) 
p 

image.png

代码语言:javascript
复制
 p + scale_y_discrete(labels=function(x) str_wrap(x, width=20))

image.png

2.如果不想用到stringr包
代码语言:javascript
复制
get_wraper <- function(width) {
    function(x) {
        lapply(strwrap(x, width = width, simplify = FALSE), paste, collapse="\n")
    }
}
p<- barplot(x) 
p+scale_x_discrete(labels = get_wraper(10))

欢迎关注微信公众号~

参考: https://mp.weixin.qq.com/s?__biz=MzI5NjUyNzkxMg==&mid=2247483972&idx=1&sn=fa1f4b6299f94eeb52baf5bda6a5ff6b&chksm=ec43b303db343a150806b3b1ab22a1df1c90405235bb399b155f7c50de2a0a23faf2f4ad0beb#rd https://stackoverflow.com/questions/21878974/auto-wrapping-of-labels-via-labeller-label-wrap-in-ggplot2

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

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.用到stringr包里的str_wrap函数
  • 2.如果不想用到stringr包
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档