我可以从包含图中自动生成Euler(Venn)图

时间:2013-06-10 19:40:01

标签: graph 2d data-visualization diagram venn-diagram

假设我有一个有向图G,其中每个节点代表我得到的一些集合。 如果u是v的子集,则从u到v有一个边缘。 该图是传递的和非循环的。有许多源节点(不包含任何其他节点的节点)和一个接收器(一个大的#34;反向"集合包含所有其他节点的联合。)。 换句话说,此图表是comparability graph的传递方向。

我想知道的是,我可以从这张图中自动生成漂亮的欧拉图吗?

Euler diagram就像一个维恩图,但你不必显示这些集合之间的每个重叠组合。

一个例子是这样的(取自维基百科):

enter image description here

我确信我可以手工制作这样的图表,但我处理的是大型数据集 我将不断添加,所以我想自动化这个过程。 请注意,图表的相对大小对我来说并不重要, 只是两个区域重叠,是互斥的,还是一个区域包含另一个区域。

是否有允许我这样做的算法,工具或库?

请注意,我已经问了类似的问题here,但我的大部分回答都认为LaTeX根本不适合这项工作。因此,我在这里问。

2 个答案:

答案 0 :(得分:2)

“Euler图很难自动绘制,这个项目的目标是生成第一种很好地绘制所有Euler图的方法。” - 来自eulerdiagrams.com,但有一些链接。

除此之外,搜索Euler diagram generation似乎会带来一些结果,例如Vennerable。但从这个2008 paper来看,它仍然是一个相当活跃的研究领域。

答案 1 :(得分:0)

您可以在此处找到解决方案:SageMath。这是一个非常强大的数学引擎,可以让你绘制很多图表。