我需要在维恩图中显示两个字符串列表的重叠。文本很多,因此我需要在两列(或更多列)中显示文本,以充分利用这些区域。
我试图使用库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年的电脑游戏中的图形:-)
感谢您的帮助。
答案 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)
对于其他两组,可以相应地进行。是一种解决方法,不确定这样做是否真的为您服务。