【发布时间】:2013-06-10 19:40:00
【问题描述】:
假设我有一个有向图 G,其中每个节点代表我拥有的一些集合。 从 u 到 v 存在一条边,当且仅当 u 是 v 的子集。 该图是传递的和非循环的。有许多源节点(不包含任何其他节点的节点)和一个接收器(一个包含所有其他节点的大“逆”集。)。 换句话说,这个图是comparability graph的传递方向。
我想知道的是,我可以从这个图自动生成一个好看的欧拉图吗?
Euler diagram 类似于维恩图,但您不必显示集合之间重叠的每个组合。
一个例子是这样的(取自维基百科):
我确信我可以手工制作这样的图表,但我正在处理大型数据集 我将不断添加,所以我想自动化这个过程。 请注意,图表的相对大小对我来说并不重要, 只有两个区域是否重叠、是否相互排斥,或者一个区域是否包含在另一个区域中。
是否有允许我这样做的算法、工具或库?
请注意,我已经问过类似的问题here,但我的大部分回答都是 LaTeX 根本不适合这项工作。因此,我在这里问它。
【问题讨论】:
-
如果我理解正确的话,欧拉图本质上是一个不完整的维恩图。一些十字路口被认为不重要并被丢弃。你有一个标准来决定哪些交叉点不重要吗?否则,算法怎么知道?
-
我在想除非另有说明,否则两个集合的交集将被假定为空,并且图中将忽略空的交集。
标签: graph 2d data-visualization diagram venn-diagram