在Vennerable"元素"中引入换行符

时间:2014-09-21 22:14:26

标签: r venn-diagram

我使用Vennerable package绘制维恩图。

library(Vennerable)

A <- c("aa","ab","ac","a1")
B <- c("bb","ab","bc")
C <- c("ac","bc","cc","aa")
L <- list(A=A,B=B,C=C)
V <- Venn(L)

我知道我可以操纵&#34;元素的字体大小&#34;与

gp <- VennThemes(compute.Venn(V))
gp$FaceText <- lapply(gp$FaceText,function(x) {x$fontsize<-10; return(x)})
plot(V ,doWeights=FALSE,show=list(FaceText="elements"),gp=gp)

不幸的是,元素&#39;如果没有空格或逗号(&#34; aaac&#34;而#34; aa,ac&#34;),则会将标签文字放入集合中。见下图。有没有办法改变这个?

此外,如何在元素中引入换行符。标签,如果我有很多项目(超过2,如下面的情况(aa ac)?我相信像

这样的功能
linebreak <- function(x,...){
  gsub('(.{1,15})(\\s|$)', '\\1\n', x)} 

可以提供帮助。但是我如何将它整合到Vennerable图表代码中呢?

遗憾的是,该软件包的文档中没有任何相关信息。 非常感谢。 enter image description here

1 个答案:

答案 0 :(得分:0)

如果你把&#34; \ n&#34;在名称中,换行符出现在文本标签中:

L <- list('A\nB'=A,'B\nC'=B,'C\nD'=C)
V <- Venn(L)
gp <- VennThemes(compute.Venn(V))
gp$FaceText <- lapply(gp$FaceText,function(x) {x$fontsize<-10; return(x)})
plot(V ,doWeights=FALSE,show=list(FaceText="elements"),gp=gp)

我无法让您的linebreak功能以我想象的方式工作,但没有测试套件。