R中的欧拉图

问题描述

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

谢谢

import requests
response = requests.get("http://www.gutenberg.org/files/10/10-0.txt")
# response.encoding = "utf-8"
hehe = response.text

enter image description here

解决方法

如评论中所述,您将无法用圆圈表达超过 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 个集合会变得非常缓慢。结果:

Euler diagram

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

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...