我使用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图表代码中呢?
遗憾的是,该软件包的文档中没有任何相关信息。 非常感谢。
答案 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
功能以我想象的方式工作,但没有测试套件。