2017-08-03 41 views
1

我正在研究一些问题,主题是找到一种合适的方式来表示简单网页上的分层结构。精度:这是一个巨大的数据量。WebPage上的分层结构表示

让有一定的语境化第一: 让说你有一个它是由个省公司,包含几个员工...

什么是常用的有:

树架构:

Tree architecture (example)

但我不喜欢它,因为如果你有大量的数据,扩大和崩溃,如果你正在寻找几个对象,它可能会很棘手......

圈模式:

Circle Mode (example)

和节点模式:

Nodes example

一个功能,我认为可以帮助

2其他可能带来一定的灵活性的方法最终用户是一个弹性搜索栏,但这里的目标是带来一些灵活性用户可以浏览结构。

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

请分享您的观点,想法,创意...?

回答

1

听起来像是你在寻找树绘图算法。让我举一个简短的概述:

在绘制图形,你基本上可以通过三组特性的描述绘制:

  • 绘制惯例,即如何节点边缘在您的可视化中呈现。可能的选择是:

    • 代表你的节点作为,您的边缘作为非相交曲线它们之间
      这可能是由例如,要求将点放置在规则的网格上,在根周围的同心圆上或类似的东西上。此外,您可能需要边缘为直线,圆形参数,...
      这可能是您在谈论树可视化时首先想到的。 straight-line drawing, from "Trees with convex faces and optimal angles." J. Carlson and D. Eppstein. arXiv:cs.CG/0607113. 14th Int. Symp. Graph Drawing, Karlsruhe, Germany, 2006. Lecture Notes in Comp. Sci. 4372, 2007, pp. 77-88.
    • 将您的节点表示为矩形,通过嵌套矩形隐含您的边。这通常被称为树状图 tree map, from Wikipedia
  • 一些美学要优化,即

    • 边缘之间最大化的角度
    • 尽量减少该地区的树需要
    • 如果建立基于树的物理模型,请尽量减少潜在能量(请参阅Wikipedia:Force-directed graph drawing
      ...
  • 您也可以放置一些约束您的节点或边缘,例如上将某些节点固定到某个位置,强化某些边缘长度或类似的想法。

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

  • 正如你已经表明,在基于圈时尚,无论是通过将根在吸取你的树中心和儿童在根周围的同心圆中,或者围绕它以圆形方式对齐节点的所有子树。这些在GraphViz工具实现为circotwopi
  • 使用HV布局类似的树视图主要是具有水平和垂直边缘粘,但允许多一点自由子树安置 HV layout, from the goblin2 documentation
  • 使用任意的,其操作水平的角度来看,即根被放置在顶部的许多直线绘图技术,其子女的下一级,... level-wise graph drawing
  • 代表你的树作为一个树状图相似上面的例子。

如果不是所有的这些技术描述并在手册图形图像的可视化和通过等Tassima的Tree-drawing chapter可视化。人。