一种紧凑的层次型数据结构的图形化表达方法及装置与流程

文档序号:12034746阅读:632来源:国知局
一种紧凑的层次型数据结构的图形化表达方法及装置与流程

本发明涉及信息可视化领域,尤其涉及一种紧凑的层次型数据结构的图形化表达方法,该方法对树结构进行可视化,可以对计算机中的文件系统、论坛中的讨论贴等层次型数据进行直观形象地表示。



背景技术:

目前,在信息领域有很多层次型数据可以表示成树型数据结构。对树型结构有很多可视化表现方法。下面列举几种树形结构的图形化表达方法:

举例1:树是一种常见的数据结构,图1是树结构的一种图形化表达方法。它清晰地定义了不同节点的主从关系,可以使人了解整个树结构的层次关系。但是当树包含较多数据时,如图2所示。通过这种方法来表示树结构,会带来很多不足。对于某一子节点,很难迅速发现它的各级父节点;整个图形化区域内,空间被大量的线条所占据,而过多的线条也带来了视觉上的混乱。

举例2:treemap也是一种广泛使用的层次型数据的表示方法。而且,在treemap中没有表示层次关系的线条,数据元素内在的层次关系是通过它的空间位置来体现的。图3给出了图1中所示树结构的treemap表达。在该方法中,每个叶节点对应一个彩色区域,而其父节点通过在彩色区域顶部的文字来显示。当显示的树结构比较复杂时,用来显示父节点的文字将会非常小,这在视觉带来了很大不便。而且这种表示方法时,用户需要经过一段时间的学习适应,才能快速了解这个图形的含义。



技术实现要素:

本发明提供了一种紧凑的树型数据结构的图形化表达方法及装置,本发明实现了紧凑并清晰地对树型数据进行图形化表示,详见下文描述:

一种紧凑的层次型数据结构的图形化表达方法,所述方法是一种无线条、层次型结构的数据图形化方法,所述方法包括以下步骤:

每个数据集按照内部层次关系构造树型数据结构;

每个节点,在图形化表示中对应于一个被称为节点块的矩形,每节点块拥有等级、高度、长度、起始位置、颜色、底纹、简单文本信息和详细文本信息属性;

根据树型数据结构,确定每个节点块的等级,并根据等级确定其高度;

根据叶子结点的自身属性或人为定义每个叶子节点块的长度;

根据子节点块长度确定父节点块长度;

根据父节点的起始位置,以及兄弟节点的长度,确定节点的起始位置;

根据节点的属性,确定对应节点块的颜色和底纹;

根据节点的属性,确定对应节点块的简单文本信息和详细文本信息;

将属于同一节点的所有子节点对应的节点块,放置在该节点的节点块下方、上方、左侧、或右侧表示从属关系。

其中,所述节点块对应于图形化表达中的一个矩形区域。

所述根据子节点块长度确定父节点块长度具体为:

叶子结点块长度根据对应节点的属性确定,或人为指定;父节点块长度等于其所包含的子节点块长度之和。

其中,如果节点是根节点,节点块起始位置为零;如果节点不是根节点,所述节点块的起始位置等于父节点的起始位置、加上排在前面的兄弟节点对应节点块的长度之和。

进一步地,所有等级相同的节点块的高度相同。

进一步地,所述节点块的颜色和底纹根据对应节点的自身属性确定。

其中,所述简单文本信息在节点块矩形内显示,所述详细文本信息在某一预设的文本显示区显示。

进一步地,所述图形化表达方法形成的图形由一些长度不等的多层矩形块构成。

一种紧凑的层次型数据结构的图形化表达装置,所述装置包括:

构造模块,用于每个数据集按照内部层次关系构造树型数据结构;每个节点,在图形化表示中对应于一个被称为节点块的矩形,每节点块拥有等级、高度、长度、起始位置、颜色、底纹、简单文本信息和详细文本信息属性;

属性模块,用于根据树型数据结构,确定每个节点块的等级,并根据等级确定其高度;根据叶子结点的自身属性或人为定义每个叶子节点块的长度;根据子节点块长度确定父节点块长度;根据父节点的起始位置,以及兄弟节点的长度,确定节点的起始位置;根据节点的属性,确定对应节点块的颜色和底纹;根据节点的属性,确定对应节点块的简单文本信息和详细文本信息;

放置模块,用于将属于同一节点的所有子节点对应的节点块,放置在该节点的节点块下方、上方、左侧、或右侧表示从属关系。

进一步地,所述装置形成的图形由一些长度不等的多层矩形块构成。

本发明提供的技术方案的有益效果是:

1)对于一个复杂的树结构,由于本方法没有使用线条来表示不同元素之间的从属关系,因此很大程度上节约了显示空间。

图5给出了图1中显示的树结构的块形树表达,可以看出图5需要的空间非常少。图6给出了包含500个节点的块形树表达,可见它结构清晰且占用空间少。

2)将本发明用于讨论贴的图形化表达可以极大地缩短用户浏览时间,减少用户操作。目前,普通网站显示一个讨论贴时,每页大约能显示20条讨论意见。这样显示一个200条讨论意见的讨论贴,用户需要翻10个页面,而且在每个页面内用户还需要向后翻页。而通过本发明可极大简化讨论贴的浏览过程。利用本发明200个讨论意见的讨论贴的块形树,在一个屏幕的范围内就可以完全显示。用户不需页面跳转和翻页,只需要移动鼠标。

3)windows、mac/os和linux等计算机系统利用数字给出每个文件的大小。对于一个复杂的多级文件目录结构,用户很难迅速理清哪些目录、哪些文件占用了较大空间。为了弄清这些问题,用户需要点击进入每一个目录,记录每个文件的大小,才能最终确定上述问题的答案。而如果用块形树表示文件目录结构,以长度定义块形树中叶子节点块的长度,那么用户几乎不需要任何操作就可以一目了然地确定不同目录和文件占用磁盘空间的情况。

4)节点块的长度直观地反映了与其对应的节点的重要性;通过每个节点块的颜色、底纹等特征可直观反应节点的关键属性。

5)文本显示区为用户提供了关于节点的详细文字信息。

图7给出了一个在块形树下方的文本显示区。

6)由于每个子节点块画在其父节点块的下面(或上面、左侧、右侧),因此根据每个节点块的显示位置就可以方便地确定该节点在整个树中的结构位置(即它属于哪个父节点;它包含哪些子节点;从根节点到该子节点的路径是什么;该子节点在整个树结构中处于第几层)。

附图说明

图1为常用的树结构图形化表达方法的示意图;

图2为1个树结构的示意图;

图3为图1中所示树结构的treemap表达的示意图;

图4为一种紧凑的层次型数据结构的图形化表达方法的流程图;

图5为图1中所示树结构的块形树表达的示意图;

图6为500个节点树结构的块形树表达的示意图;

图7为带文本区的块形树的示意图;

图8为讨论帖的示意图;

图9为讨论帖的块形树表达的示意图;

图10为目录文件结构的示意图;

图11为目录文件结构的块形树表达的示意图;

图12为一种紧凑的层次型数据结构的图形化表达装置的结构示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面对本发明实施方式作进一步地详细描述。

实施例1

本发明实施例提供了一种紧凑的层次型数据结构的图形化表达方法,参见图4,该方法包括以下步骤:

101:每个数据集按照内部层次关系构造相应的树型数据结构;

102:每个节点,在图形化表示中对应于一个节点块,每个节点块拥有等级、高度、长度、起始位置、颜色、底纹、简单文本信息和详细文本信息关键属性;

通过上述设置可以使用户快速定位每个节点在树型结构中的位置并获取节点的若干关键信息,具体实现时,还可以包括其他的关键属性,根据实际应用中的需要进行设定,本发明实施例对此不做限制。

103:通过每个节点块的长度,快速判断该节点块的重要性;

104:通过节点块的颜色和底纹图案快速了解该节点块的其它属性;

105:在节点块内可显示简单文本信息;

106:在最终形成的块形树的特定位置(如上方、下方、左侧或右侧),设置一个文本区,当用户通过鼠标、键盘或其它输入设备将焦点设置到某一节点块时,可以在该文本区显示关于该节点块的详细文本信息。

综上所述,本发明实施例通过上述步骤101-步骤106实现了紧凑并清晰地对层次型数据进行图形化表示,节省了空间,提高了工作效率,满足了实际应用中的需要。

实施例2

下面结合具体的计算公式、附图对实施例1中的方案进行进一步地介绍,详见下文描述:

为了方便起见,以图1中的树形结构为例进行说明,本发明实施例所提出的图形化表达方法被称为块形树。图5中给出了与图1中给出的树形结构对应的块形树表达。块形树可以根据需要按照“从左到右”、“从右向左”、“从上到下”和“从下到上”等方式放置(具体实现时,本发明实施例对此不做限制)。下面以“从上到下”的方式具体说明其制作方法。

201:对数据集按照内部层次关系构造相应的树型数据结构;

为了后续的叙述方便,这里需要明确若干基本概念。树中的每个数据元素被称为节点;如果一个节点没有属于它的下一级的节点,则这个节点称为叶子结点;某一个节点的上层节点被称为父节点;同属于一个父节点的所有子节点,称为兄弟节点;当一个节点没有父节点时,这个节点称为根节点。

202:对于每一个节点,定义一个节点块,该节点块对应于最终形成的图形化表达中的一个矩形区域;

203:每个节点块包含等级、高度、长度、起始位置、颜色、底纹、简单文本信息和详细文本信息八个主要特征;

为了方便起见,这八个特征参数分别用level、height、length、start、color、background、text1和text2来表示,其中:

一、节点块的等级level;

节点块的等级定义与树结构中节点的等级定义相同,根节点块的等级定义为0,如果一个节点块的等级为i,则它所包含的子节点块的等级为i+1。

二、节点块的高度

节点块的高度由等级level决定,所有level相同的节点块其高度height相同。根据等级level决定高度height的具体方式本发明实施例对此不做限制。

三、节点块的长度length;

如果一个节点是叶子结点,则与它对应的节点块的长度是根据该叶子节点的某种属性来确定,也可以人为指定每个叶子节点的长度。

如果一个节点不是叶子节点,则与它对应的节点块的长度等于它所包含的所有子节点对应的节点块长度的和。即如果一个节点包含n个子节点,则它的长度用下面的公式计算:

其中,lengthn为所有n个子节点中的第n个子节点对应的节点块的长度。

四、节点块的起始位置start;

这里节点块的起始位置是指节点块矩形左边界的水平坐标。根节点块的起始位置定义为0。属于同一个父节点的兄弟节点对应的节点块的先后顺序关系,可以根据某种属性来确定,本发明实施例对此不做限制。假设某一个父节点包含m个子节点,而该父节点对应的节点块起始位置为startf,则它的第m个子节点块的起始位置startm用下面的公式计算:

其中,lengthk为父节点的第k个子节点对应节点块的长度。

五、节点块的颜色color和底纹background;

每个节点块的颜色color和底纹background可以用于表示其对应节点的某种属性,本发明实施例对此不做赘述。

六、节点块的文本text1和text2。

每个节点块的文本信息text1和text2是该节点进行描述的文本信息。简单文本信息text1可以在节点块矩形内显示,详细文本信息text2可以在专门设置的文本显示区显示。

204:根据节点块的level、height、length、start、color、background、text1和text2八个特征参数,确定一个特定位置的带文本信息的具有颜色和底纹的矩形;

其中,start是节点块矩形左上角点的横坐标,length和height分别是节点块矩形的宽和高,color和background表示节点块矩形的颜色和底纹,text1表示节点矩形块内显示的简单文本信息。

205:利用“从上到下”的方式放置节点块时,根节点块放在最上面;然后,在它下面放置属于它的子节点块;重复操作,直到所有的叶子结点块都被放置完毕;

206:在与“块形树”相邻的某个位置(这个位置可以是固定不变的,也可以是根据具体需要变化的),设置一个文本区域,当用户将关心的焦点设置在某个节点块时,则在这个文本区显示与之对应的节点的详细文本信息text2;

207:通过上述步骤201-步骤206,形成了一种对层次数据的紧凑的图形化表达,形成的图形是由一些长度不等的多层矩形块构成,这个最终形成的图形被称为“块形树”。

208:当块形树形成以后,可用下面的公式计算整个块形树所占矩形区域的高和宽:

其中,n为待表示的树结构中节点的数量,level1,level2,…leveln为所有节点块的level属性值,而max(level1,level2,…leveln)表示所有这些level属性值里的最大值;hl表示等级为l的节点块的高度;k表示待表示的树结构中叶子结点的数量,为第k个叶子节点的length属性。

利用上述公式可以确定一个矩形区域的高和宽。这里的高和宽的单位可以是根据实际应用中的需要进行设定,本发明实施例对此不做限制。

209:根据实际显示内容的需要、屏幕显示区域的实际尺寸以及人眼的分辨能力,定义一个适当的显示比例,将上面确定块形树所占矩形区域高和宽转换为以像素为单位的高和宽;根据这个转换比例,计算每个节点块的显示尺寸,按照转换后的尺寸将块形树显示到显示设备的一个区域内;

210:对显示区域的空间进行改进。

当树结构中的节点太多,而显示区域的大小有限时,可能会出现某些节点块的显示空间非常小,以至于人眼很难分辨。这时,为了使最小的节点块都有一个人眼可以分辨的区域,可以采取以下一个或几个必要的改进措施,来改善用户的视觉体验。

1)只显示用户关心的某个节点的父节点、兄弟节点和子节点的块形树;

2)提供适当的功能,让用户来决定是否显示包含于某个父节点块的子节点块;

3)提供适当的功能,让用户可以对块形树放大或缩小;

3)通过水平或竖直方向的滚动显示,增加可用的显示区域;

4)简单文本信息text1可以显示在节点块矩形内,也可以显示在另外的随用户输入焦点变化的浮动文本框内;

5)详细文本信息text2可以显示在专门的固定位置的文本显示区,也可以显示在另外的随用户输入焦点变化的浮动文本框内。

综上所述,本发明实施例通过上述步骤201-步骤210实现了紧凑并清晰地对层次型数据进行图形化表示,节省了空间,提高了工作效率,满足了实际应用中的需要。

实施例3

下面结合两个实例、附图对实施例1和2中的方案进行可行性验证,详见下文描述:

一、用块形树实现对讨论贴数据的可视化表达:

信息化社会中,很多情况下会有不同的人参与同一个问题的讨论。例如:论坛中的每个讨论贴。通常讨论帖由一人发起,提出要讨论的话题。后续会有不同的人根据自己的兴趣对该话题进行回复。

图8就是一个简单的讨论帖结构。在图8中,文本框里的文字是用户发表的意见。后面的第一个灰色框中的字母表示发表这条意见的用户,第二个灰色框里的数字表示这些意见发表的先后顺序。在这个例子中,a用户在第1条意见中发起了“第一套方案是好的”这个话题。第2、3和4条意见是对第1条意见的回复。第5条意见是对第4条意见的回复。第6条意见是对第2条意见的回复。第7条意见是对第6条意见的回复。一共有a、b、c、d和e五个用户参与了这个讨论

图8中的讨论帖很容易根据不同意见的回复对应关系形成一个树形结构,而这个树结构可以用块形树来实现。具体实现方案如下:

如果一条意见没有其它意见对其回复,则将这条意见视为一个叶子结点。在这里人为规定所有叶子节点块的宽度均相同,称为单位宽度。其它节点块的宽度按照技术方案中的方法计算。每个节点块的颜色根据用户名来定义(具体实现中并不局限于这种颜色定义方法),同时将用户名设为简单文本信息显示在节点块块内。最终形成的这个讨论帖的块形树如图9所示。图9中用颜色和底纹来区分不同参与者。

在图9的块形树表达中,当用户通过鼠标、键盘等输入设备将输入焦点置于某一个节点块时,相应的讨论帖意见的文本信息显示在左侧的文本区内。而通过块形树表达用户也很容易了解整个讨论过程的结构。

二、用块形树实现对计算机内文件系统结构的可视化表达。

图10中给出了一个简单的目录文件结构。加框的文字代表一个目录,不加框的文字代表一个文件,文件名后面括号里的数字表示这个文件的大小。这个目录和文件构成的结构也很容易形成一个树结构,因此它也可以用块形树来表示。

在这个例子中,每个文件构成了一个叶子节点,文件的大小用来定义叶子节点块的宽度,文件的类型用来定义节点块的颜色和底纹,而文件名作为节点块内的简单文本信息。图11给出了这个目录文件结构的块形树表达。

实施例4

一种紧凑的层次型数据结构的图形化表达装置,参见图12,该表达装置是与实施例1和2中方法部分对应的装置描述,该装置包括:

构造模块1,用于每个数据集按照内部层次关系构造树型数据结构;每个节点,在图形化表示中对应于一个被称为节点块的矩形,每节点块拥有等级、高度、长度、起始位置、颜色、底纹、简单文本信息和详细文本信息属性;

属性模块2,用于根据树型数据结构,确定每个节点块的等级,并根据等级确定其高度;根据叶子结点的自身属性或人为定义每个叶子节点块的长度;根据子节点块长度确定父节点块长度;根据父节点的起始位置,以及兄弟节点的长度,确定节点的起始位置;根据节点的属性,确定对应节点块的颜色和底纹;根据节点的属性,确定对应节点块的简单文本信息和详细文本信息;

放置模块3,用于将属于同一节点的所有子节点对应的节点块,放置在该节点的节点块下方、上方、左侧、或右侧表示从属关系。

进一步地,该装置形成的图形由一些长度不等的多层矩形块构成。

具体实现时,构造模块1、属性模块2、以及放置模块3可以为单片机、微控制器、dsp等具有计算、处理功能的硬件实体,本发明实施例对此不做限制。

综上所述,本发明实施例通过上述模块实现了紧凑并清晰地对层次型数据进行图形化表示,节省了空间,提高了工作效率,满足了实际应用中的需要。

本领域技术人员可以理解附图只是一个优选实施例的示意图,上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1