假设我有一个有向图G,其中每个节点代表我得到的一些集合.
如果u是v的子集,则从u到v有一个边缘.
该图是传递的和非循环的.有许多源节点(不包含任何其他节点的节点)和一个接收器(一个包含所有其他节点的联合的大“非反向”集合).
换句话说,该图是
comparability graph的传递方向.
我想知道的是,我可以从这张图中自动生成漂亮的欧拉图吗?
Euler diagram就像维恩图,但您不必显示集合之间的每个重叠组合.
一个例子是这样的(取自维基百科):
我确信我可以手工制作这样的图表,但我正在处理大型数据集
我将不断添加,所以我想自动化这个过程.
请注意,图表的相对大小对我来说并不重要,
只有两个区域是重叠的,是相互排斥的,还是一个包含在另一个区域中.
是否有允许我这样做的算法,工具或库?
请注意,我已经问过类似的问题here,但我的大多数回答都认为LaTeX根本不适合这项工作.因此,我在这里问.
最佳答案 “Euler图很难自动绘制,这个项目的目标是生成第一种很好地绘制所有Euler图的方法.” – 从
eulerdiagrams.com开始,但那里有一些链接.
除此之外,寻找欧拉图生成似乎带来了一些结果,如Vennerable.但从这个2008 paper来看,它仍然是一个相当活跃的研究领域.