网页上的层次结构表示

Hierarchical structure representation on a WebPage

我正在进行一些研究,主题是找到一种在简单网页上表示层次结构的正确方法。 精度:这是一个巨大的数据量。

让我们先进行一些语境化: 假设您有一家由多个部门组成的公司...

常用的是:

树结构:

但我不喜欢它,因为如果你有大量数据,如果你正在寻找多个对象,展开和折叠可能会很棘手...

另外 2 种可能带来一些灵活性的方法:

圈子模式:

和节点模式:

我认为可以帮助最终用户的一个功能是 Elastic Search 栏,但这里的目标是为用户在结构中导航提供一些灵活性。

我想使用 JSF,但技术在这里并不重要,它只是一个概念阶段。

请分享您的意见、想法、足迹...?

听起来您正在寻找树图算法。让我做一个简短的概述:

在图形绘制中,基本上可以通过三组属性来描述一张图:

  • 您的绘图约定,即节点在您的可视化中表示。可能的选择是:

    • 将您的节点表示为 ,将您的边表示为它们之间不相交的 曲线
      这可能是专门的,例如要求将点放置在规则网格上,根周围的同心圆或类似的东西上。此外,您可以要求边缘为直线、圆弧、...
      这可能是您在谈论树可视化时首先想到的。
    • 将您的节点表示为 矩形 ,通过嵌套矩形来隐式表示您的边缘。这通常称为 树状图
  • 一些美学你想优化,即

    • 最大化边之间的角度
    • 最小化树的面积
    • 如果您基于树构建物理模型,请最小化势能(参见维基百科:Force-directed graph drawing
      ...
  • 您还可以在节点或边上放置一些约束,例如将某些节点固定到一个位置,强制执行某些边长或类似的想法。

既然我已经解释了基础知识,让我列出一些方法:

  • 正如您已经展示的那样,以基于圆形的方式绘制树,方法是将根放在中心,将子节点放在根周围的同心圆中,或者将节点的所有子树以圆形方式围绕它对齐。这些在 GraphViz 工具中实现为 circotwopi
  • 使用类似于树视图的 HV 布局 以主要坚持水平和垂直边缘,但允许在子树放置中有更多的自由度
  • 使用许多按级别操作的直线绘图技术中的任何一种,即根位于顶部,其子级位于下一层,...
  • 将您的树表示为类似于上例的树图

大多数(如果不是全部)这些技术在 Tassima 等人的 图形绘制和可视化手册 Tree-drawing chapter 中进行了描述和可视化。其他