I have been reading quite a bit on graphing libraries for Java and Javascript lately but I haven't found a good way to do what I want to do. Essentially I have a hierarchy of sets with regards to a bunch of elements (up to several thousands). These sets can be fully or partly overlapping, fully covering or completely disjoint from one another. What I would like to do is to display the following information:
我不确定如何以直观的方式展示这些信息。 我已经看到了 Voronoi ¹,² 图表,它们在视觉上非常好看,但是它们具有不同的数学背景,因此我认为我将无法以适当的方式描绘我所拥有的层次结构。 我想在运行时创建这些图形(在Java的情况下)或使用JavaScript(在HTML部署的情况下),两者都可以。 然而,有一个限制,那就是图形需要被创建或可以导出到高分辨率矢量图形。
简而言之,我的问题是:
1. 是否有一种好的方式来可视化我拥有的数据? 如果有,是否存在一个现成的实现形式(即库)? 2. 如果没有简单的解决方案,换句话说,如果我需要自己发明轮子,我该如何实现这样的图表? 什么是一个好的起点? 我需要额外注意什么?
谢谢!
- 一个集合的大小(与其他集合相比)
- 一个集合的“热度”值(以颜色编码),该值是由它所覆盖的元素计算出来的
- 所有集合的完整拓扑结构,以单个图形式呈现(以便向用户显示重叠、交集等信息)
编辑:也许我应该举个例子来说明我所说的集合、元素和部分重叠的层次结构。以下是我处理的一种过度简化的集合类型(请注意,数字1
-10
、字母a
-h
和X
代表可相互比较的元素):
Set1 = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11}
Set2 = {1, 2, 3, 4, 5, 6}
Set3 = {1, 2, 3}
Set4 = {1, 4, 5, 6, 7}
Set5 = {a, b, c, d, e, f, g, h}
Set6 = {a, b, c, d, e}
Set7 = {a, b, c, 7}
Set8 = {2, 4, 7, 8, c, f}
Set9 = {X}
我不确定如何以直观的方式展示这些信息。 我已经看到了 Voronoi ¹,² 图表,它们在视觉上非常好看,但是它们具有不同的数学背景,因此我认为我将无法以适当的方式描绘我所拥有的层次结构。 我想在运行时创建这些图形(在Java的情况下)或使用JavaScript(在HTML部署的情况下),两者都可以。 然而,有一个限制,那就是图形需要被创建或可以导出到高分辨率矢量图形。
简而言之,我的问题是:
1. 是否有一种好的方式来可视化我拥有的数据? 如果有,是否存在一个现成的实现形式(即库)? 2. 如果没有简单的解决方案,换句话说,如果我需要自己发明轮子,我该如何实现这样的图表? 什么是一个好的起点? 我需要额外注意什么?
谢谢!
编辑:我有一个潜在的想法,就是将通用集合中的所有元素布局成一个六边形网格,并覆盖所需的颜色,然后为集合绘制边界。然而,这个想法存在几个问题,特别是指定元素的位置,以便集合不会分散在整个图表中。有任何评论/建议吗?