问题描述
大家好,我想绘制欧拉图,但我希望以不同的方式绘制,如下所示。我如何绘制这种类型的欧拉图任何建议,是否可以这样绘制
谢谢
import requests
response = requests.get("http://www.gutenberg.org/files/10/10-0.txt")
# response.encoding = "utf-8"
hehe = response.text
解决方法
如评论中所述,您将无法用圆圈表达超过 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 中找到更多信息。