R中的欧拉图

Euler diagram in R

大家好,我想绘制欧拉图,但我希望以不同的方式绘制,如下所示。我如何绘制这种类型的欧拉图任何建议,是否可以像这样绘制

谢谢

  A  B  C  D   A1   B1   C1   D1
  2  3  5  6   2   30   30   60
  3  0  1  2   4   50   10   10
  4  0  6  5   85   4   85   50
  6  0  10 4   90  70   90    4
  5  92 50 10  50  50    3   30

如评论中所述,您将无法用圆圈表示超过 3 组的任意一组关系。 eulerr 包使用省略号来获得更多组合,并使结果与每个区域中的元素数量成正比。我制作了一个名为 nVennR 的不同包,它使用圆圈代替集合来表示区域。然后这些集合 围绕 这些圆圈绘制:

> library(nVennR)
> myT <- read.table('clipboard', header = T)
> lol <- as.list(myT)
> myV <- plotVenn(lol)
> myV <- plotVenn(nVennObj = myV)
> myV <- plotVenn(nVennObj = myV)
> myV <- plotVenn(nVennObj = myV)
> myV <- plotVenn(nVennObj = myV)
> myV <- plotVenn(nVennObj = myV)
> myV <- showSVG(nVennObj = myV, opacity = 0.2)

需要重复命令myV <- plotVenn(nVennObj = myV)以获得紧凑的形状。如果您尝试一下,您会发现它需要几分钟的时间,因为它需要执行多次模拟。该包可以采用任意数量的集合,但超过 9 组就会变得非常慢。结果:

您可以保存、编辑和改进图片以更好地展示信息,但这并非微不足道。您可以在 vignette.

中找到更多信息