2014-09-21 33 views
0

我使用Vennerable package來繪製維恩圖。在Vennerable「元素」中引入換行符

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) 

我知道我可以操控字體大小「元素」與

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) 

不幸的是,元素的標籤文本放入集,而不會空格或逗號(」 aaac「而不是」aa,ac「)。見下圖。有什麼方法可以改變它嗎?

此外,我怎麼能介紹換行符到元素的標籤,如果我有很多項目(不僅僅是2,如下面的情況下(AA AC)?我相信像

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

能有所幫助。但我怎麼會是融入Vennerable情節碼?

不幸的是,不是包的文檔中的任何有關信息。 非常感謝。 enter image description here

回答

0

如果你把「\ n」個換行符出現在文本的標籤名稱:

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功能工作,我以爲你期待的方式,但沒有測試套件。