gpt4 book ai didi

java - 将集合层次结构可视化为彩色编码图

转载 作者:IT老高 更新时间:2023-10-28 20:54:14 25 4
gpt4 key购买 nike

我最近读了很多关于 Java 和 Javascript 的图形库的文章,但我还没有找到一个好方法来做我想做的事。

基本上我有一个关于一堆元素(多达数千个)的集合层次结构。这些集合可以完全或部分重叠、完全覆盖或完全不相交。我想做的是显示以下信息:

  • 集合的大小(相对于其他集合)
  • 根据其涵盖的元素计算出的一组“热”值(以颜色代码表示)
  • 单个图形中集合的完整拓扑(以便向用户显示重叠、交叉等)

编辑:也许我应该举一个例子来说明我所说的集合和元素以及部分重叠的层次结构。以下是我处理的那种集合的过度简化版本(注意数字 1-10 和字母 a-hX 表示可以相互比较的元素):

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 的情况下)创建这些图表,或者在 HTML 部署的情况下使用 Javascript,两者都很好。然而,有一个约束条件是图形需要创建或可以导出为高分辨率 vector 图形。

简而言之我的问题:

  1. 有没有一种很好的方法来可视化我所拥有的数据类型?如果是这样,它是否以易于实现的形式存在(即库)?
  2. 如果问题没有简单的解决方案,换句话说,如果我需要在这种情况下发明轮子,我该如何自己实现这样的图表?什么是好的起点?我需要特别注意什么?

谢谢!

编辑:我的潜在想法是将通用集合中的所有元素布局为具有所需颜色覆盖的六边形网格,然后绘制集合的边界。然而,这个想法有几个问题,特别是为元素指定位置的问题,因此集合不会在整个图上 split 。有什么意见/建议吗?

最佳答案

是的,这是一个经过充分研究的问题。您所描述的称为 hypergraph .每个元素都可以表示为图中的一个顶点,集合是超边。然后问题就变成了可视化超图的问题。

enter image description here

不幸的是,没有一个完美的通用解决方案,因为即使是最简单的图表也可能具有复杂的可视化效果。

如果您的集合相对较小(< 5 个元素),您可以使用常规绘图库,如 graphviz .为此,只需连接每组中的所有顶点对并为它们着色。这将产生类似于以下的解决方案:

enter image description here

关于java - 将集合层次结构可视化为彩色编码图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11297061/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com