是否可以在维恩图中将文本分为两列?

时间:2019-04-12 11:15:10

标签: r

我需要在维恩图中显示两个字符串列表的重叠。文本很多,因此我需要在两列(或更多列)中显示文本,以充分利用这些区域。

我试图使用库RAM绘制维恩图。以下代码每个圆圈仅显示一列文本:

library(RAM)

First <- c('a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','aa','bb','cc','dd','ee','ff','gg','hh','ii','jj','kk','ll','mm','nn','oo','pp','qq','vv','ww','xx','yy','zz')
Second <- c('l','m','n','o','p','q','r','s','t','u','v','w','x','y','z')

group.venn(list(First=First, Second=Second), label=TRUE,
fill = c("orange","blue"), cat.pos=c(0,0), lab.cex=0.3)

理想情况下,字符串应均匀分布在圆圈中。或者,该文本应显示在两三列中。

有问题,但不是真正的问题:圆圈看起来像是1990年的电脑游戏中的图形:-)

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

好吧,它似乎不是可调的。也许对于创建venn图的另一个程序包有一种解决方法。

library(VennDiagram)


vplot <- venn.diagram(list(First = First, Second = Second),
                     fill = c("green", "blue"),
                     alpha = c(0.5, 0.5), cat.cex = 1.5, cex=0.4,
                     filename=NULL)

#put the labels together beforehand
vec <- setdiff(First, Second)
vec2 <- paste(vec[1:a], vec[a:length(vec)], sep = "  ", collapse = "\n")

vplot[[5]]$label  <- vec2 

grid.newpage()
grid.draw(vplot)

enter image description here

对于其他两组,可以相应地进行。是一种解决方法,不确定这样做是否真的为您服务。