处理矩形树图的方法和装置与流程

文档序号:11627655阅读:255来源:国知局
处理矩形树图的方法和装置与流程

本发明涉及互联网技术领域,尤其涉及一种处理矩形树图的方法和装置。



背景技术:

echarts(enterprisecharts)是一种商业级数据图表库,可提供直观、生动、可交互以及可个性化定制的可视化数据图表。基于echarts中不同的控件可渲染出不同类型的图表,例如,折线图、柱状图、饼图、热力图以及矩形树图等。其中,利用treemap控件可渲染出矩形树图。矩形树图由若干不同大小的矩形组成,且通过矩形树图可直观看出同一组数据的对比。在实际应用中,每个矩形中都会显示对应的矩形名称,用户可直观获知各个矩形所代表的数据;当鼠标光标移至某一矩形所在区域时,会在该矩形的上层显示矩形名称以及对应的取值,从而用户可直观获知该矩形的取值。

然而,当矩形树图中某一矩形的宽度小于矩形名称的长度时,无法在该矩形中显示矩形名称,只有当用户将鼠标的光标移至该矩形区域时,才可在该矩形的上层显示矩形名称以及对应的取值。因此,当矩形树图中有多个矩形无法显示矩形名称时,用户需要一一将鼠标光标移至对应的矩形区域,才可获知矩形名称,操作十分繁琐。



技术实现要素:

鉴于上述技术问题,本发明提出了一种处理矩形树图的方法和装置,其目的在于解决现有技术中存在的以下问题:当矩形树图中某一矩形的宽度小于矩形名称的长度时,无法在该矩形中显示矩形名称,并只有当用户将鼠标的光标移至该矩形局域时,才可在该矩形的上层显示矩形名称以及对应的取值,从而当矩形树图中有多个矩形无法显示矩形名称时,用户需要一一将鼠标光标移至对应的矩形区域,才可获知矩形名称,操作十分繁琐。

一方面,本发明提供了一种处理矩形树图的方法,所述方法包括:

遍历待显示的矩形树图中的各个矩形,获得遍历的当前矩形的宽度、矩形名称的文字样式以及矩形名称,所述文字样式包括文字尺寸和文字间距;

根据所述当前矩形的宽度以及所述当前矩形的矩形名称的文字样式,确定所述当前矩形的行字数,所述行字数为矩形每行所能容纳的文字个数;

若所述当前矩形的矩形名称的字数大于所述行字数,则对所述当前矩形的矩形名称进行换行处理;

在对所述矩形树图中各个矩形遍历完毕后,显示所述矩形树图。

另一方面,本发明提供了一种处理矩形树图的装置,所述装置包括:

遍历单元,用于遍历待显示的矩形树图中的各个矩形,获得遍历的当前矩形的宽度、矩形名称的文字样式以及矩形名称,所述文字样式包括文字尺寸和文字间距;

确定单元,用于根据所述遍历单元获得的当前矩形的宽度以及所述当前矩形的矩形名称的文字样式,确定所述当前矩形的行字数,所述行字数为矩形每行所能容纳的文字个数;

处理单元,用于当所述当前矩形的矩形名称的字数大于所述确定单元确定的所述行字数时,对所述当前矩形的矩形名称进行换行处理;

显示单元,用于在所述处理单元对所述矩形树图中各个矩形遍历完毕后,显示所述矩形树图。

借由上述技术方案,本发明提供的处理矩形树图的方法和装置,能够在显示矩形树图以前,先遍历该矩形树图中的各个矩形,获取遍历的当前矩形的宽度、矩形名称的文字样式以及矩形名称,并根据当前矩形的宽度以及当前矩形的矩形名称的文字样式,确定当前矩形的行字数(即当前矩形每行所能容纳的文字个数),然后当当前矩形的矩形名称的字数大于行字数时,对当前矩形的矩形名称进行换行处理,最后在对该矩形树图中的各个矩形遍历完毕后,再显示矩形树图。由此可知,当矩形名称的长度大于矩形的宽度而无法单行显示时,本发明可以对该矩形名称先进行换行处理,再进行显示,从而使得用户能够通过矩形树图直观获知各个矩形所代表的 数据,而无需用户必须通过将鼠标光标移至矩形名称的长度大于矩形宽度的矩形区域,才可获知矩形名称,进而简化了用户操作,提高了获取矩形名称的效率。

上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。

附图说明

通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:

图1示出了本发明实施例提供的一种处理矩形树图的方法的流程图;

图2示出了本发明实施例提供的一种矩形树图显示示意图;

图3示出了本发明实施例提供的一种处理矩形树图的装置的组成框图;

图4示出了本发明实施例提供的另一种处理矩形树图的装置的组成框图。

具体实施方式

下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。

本发明实施例提供了一种处理矩形树图的方法,如图1所示,该方法主要包括:

101、遍历待显示的矩形树图中的各个矩形,获得遍历的当前矩形的宽度、矩形名称的文字样式以及矩形名称。

其中,文字样式可以包括文字尺寸和文字间距,还可以包括字体、颜色、是否加粗、是否倾斜等。当用户对矩形树图中各个矩形的参数均设置完成后,treemap控件需要对该矩形树图进行渲染,即对矩形树图中的边框 矩形进行划分,对划分后生成的各个矩形进行颜色填充,以便在渲染完成后,对矩形树图进行显示。因此,treemap控件可以在渲染矩形树图之前,对矩形树图中的各个矩形进行遍历,也可以在渲染矩形树图的过程中,对矩形树图中的各个矩形进行遍历,也可以在对矩形树图渲染完成后、显示前,对矩形树图中的各个矩形进行遍历,在此不作限定。

102、根据当前矩形的宽度以及当前矩形的矩形名称的文字样式,确定当前矩形的行字数。

其中,行字数为矩形每行所能容纳的文字个数。当获得当前矩形的宽度以及当前矩形的矩形名称的文字样式后,treemap控件可以从文字样式中获取文字尺寸以及文字间距,并基于文字尺寸、文字间距以及当前矩形的宽度,计算出当前矩形单行所能容纳的文字个数(即行字数),以便后续基于该行字数来判断是否需要对当前矩形名称进行换行处理。

103、若当前矩形的矩形名称的字数大于行字数,则对当前矩形的矩形名称进行换行处理。

若当前矩形的矩形名称的字数大于行字数,则当前矩形的矩形名称无法在当前矩形中进行单行显示,因此treemap控件需要对当前矩形的矩形名称进行换行处理,使其能够在当前矩形中进行多行显示;若当前矩形的矩形名称的字数小于等于行字数,则当前矩形的矩形名称能够在当前矩形中进行单行显示。

104、在对矩形树图中各个矩形遍历完毕后,显示矩形树图。

若上述步骤101-103在渲染矩形树图之前执行,则当对矩形树图中的所有矩形都如步骤101-103所述的处理方式进行处理后,先对矩形树图进行渲染,再显示矩形树图;若上述步骤101-103在渲染矩形树图的过程中执行,则当对矩形树图中的所有矩形都如步骤101-103所述的处理方式进行处理后,继续对矩形树图进行渲染,并在渲染完成后,显示矩形树图;若上述步骤101-103在对矩形树图渲染完成后执行,则当对矩形树图中的所有矩形都如步骤101-103所述的处理方式进行处理后,显示矩形树图。

示例性的,如图2所示的矩形树图,该矩形树图用于表示四种手机的销售量,通过对四个矩形大小的比较可知,手机销售量由多到少依次为第 一种手机、第四种手机、第二种手机以及第三种手机。由图可知,位于左上角以及右下角的矩形的矩形名称的长度小于对应矩形的宽度,因此在显示矩形树图之前,无需对这两个矩形的矩形名称进行换行处理;位于右上角以及左下角的矩形的矩形名称的长度大于对应矩形的宽度,因此在显示矩形树图之前,需要对这两个矩形的矩形名称进行换行处理,以便使得这两个矩形名称能够在对应的矩形中完整显示(即显示效果如图2所示)。

本发明实施例提供的处理矩形树图的方法,能够在显示矩形树图以前,先遍历该矩形树图中的各个矩形,获取遍历的当前矩形的宽度、矩形名称的文字样式以及矩形名称,并根据当前矩形的宽度以及当前矩形的矩形名称的文字样式,确定当前矩形的行字数(即当前矩形每行所能容纳的文字个数),然后当当前矩形的矩形名称的字数大于行字数时,对当前矩形的矩形名称进行换行处理,最后在对该矩形树图中的各个矩形遍历完毕后,再显示矩形树图。由此可知,当矩形名称的长度大于矩形的宽度而无法单行显示时,本发明可以对该矩形名称先进行换行处理,再进行显示,从而使得用户能够通过矩形树图直观获知各个矩形所代表的数据,而无需用户必须通过将鼠标光标移至矩形名称的长度大于矩形宽度的矩形区域,才可获知矩形名称,进而简化了用户操作,提高了获取矩形名称的效率。

进一步的,上述步骤102的具体实现方式可以为:根据当前矩形的矩形名称对应的文字样式中文字尺寸以及文字间距,计算当前矩形对应的文字空间宽度,文字空间宽度为每个文字占用矩形的平均宽度;基于当前矩形的宽度以及文字空间宽度,确定当前矩形的行字数。

具体的,若在矩形中显示矩形名称时,每行的首文字前面保留有1/2的文字间距的宽度,每行的末尾文字后面保留有1/2的文字间距的宽度,则计算文字空间宽度的公式可以为awidth=fontwidth+distance,其中,awidth表示文字空间宽度、fontwidth表示文字尺寸中的文字宽度以及distance表示文字间距。

当获得文字空间宽度后,可以利用公式计算出每行所能容纳的文字个数。其中,表示向下取整,例如width=210,awidth=20,则n=10。

此外,若在矩形中显示矩形名称时,每行的首文字前面未保留空隙, 每行的末尾文字后面也保留空隙,则计算行字数的公式可以为

进一步的,对当前矩形的矩形名称进行换行处理的具体实现方式可以为:在当前矩形的矩形名称中,每隔行字数个文字,添加一个换行符(即“\n”)。例如,矩形名称为“xx品牌的智能手机xx品牌的智能手机xx品牌的智能手机”,该矩形每行所能容纳的文字个数为6,则需要对该矩形名称进行换行处理,即每隔6个文字,添加一个换行符,获得处理后的矩形名称为“xx品牌的智\n能手机xx品\n牌的智能手机\nxx品牌的智/n能手机”。

进一步的,在实际应用中,矩形树图中可能存在宽度和高度均很小的矩形,因此当该矩形名称的长度较长时,需要多行显示,但是可能会因为矩形的高度较小,而无法显示完整的矩形名称。由此可知,即使对矩形名称进行换行处理,也可能存在矩形名称无法显示的现象。因此,为确定进行换行处理后的矩形名称能够在对应的矩形中完整显示,在对当前矩形的矩形名称进行换行处理之前,可以先获取当前矩形的高度,并根据当前矩形的高度以及当前矩形的矩形名称的文字样式,确定当前矩形的列字数,列字数为矩形每列所能容纳的文字个数;然后将行字数与列字数相乘,获得当前矩形所能容纳的文字总数;最后当文字总数大于等于当前矩形的矩形名称的字数时,对当前矩形的矩形名称进行换行处理,当文字总数小于当前矩形的矩形名称的字数时,不对当前矩形的矩形名称进行换行处理。

其中,计算当前矩形的列字数的公式可以为:其中high表示矩形的高度,fonthigh表示文字尺寸中的文字高度,m表示列字数。

进一步的,若文字总数小于当前矩形的矩形名称的字数,则即使是多行显示的方式,也无法将该矩形名称完整显示在当前矩形中。因此,为了进一步使得矩形树图中的每一个矩形的矩形名称都能显示在对应的矩形中,本发明实施例对上述方案进行了如下改进:若文字总数小于当前矩形的矩形名称的字数,则根据当前矩形的矩形名称的字数、当前矩形的宽度以及当前矩形的高度,更换当前矩形的矩形名称对应的文字样式;基于更换后的文字样式,对当前矩形的矩形名称进行换行处理。

其中,更换当前矩形的矩形名称对应的文字样式包括:更换文字样式中的文字尺寸和/或文字间距。具体的,treemap控件可以利用计算出显示完整的矩形名称时,矩形名称中每个文字占用当前矩形的最大面积,然后判断当前文字样式中的文字尺寸(即文字面积)是否大于该最大面积;若小于等于该最大面积,则将文字间距更改为0,不更改文字尺寸;若大于该最大面积,则将文字间距更改为0,更改文字尺寸为小于等于该最大面积。其中,x表示矩形名称的字数。

进一步的,依据上述方法实施例,本发明的另一个实施例还提供了一种处理矩形树图的装置,如图3所示,该装置主要包括:遍历单元21、确定单元22、处理单元23和显示单元24。其中,

遍历单元21,用于遍历待显示的矩形树图中的各个矩形,获得遍历的当前矩形的宽度、矩形名称的文字样式以及矩形名称,文字样式包括文字尺寸和文字间距;

确定单元22,用于根据遍历单元21获得的当前矩形的宽度以及当前矩形的矩形名称的文字样式,确定当前矩形的行字数,行字数为矩形每行所能容纳的文字个数;

处理单元23,用于当当前矩形的矩形名称的字数大于确定单元22确定的行字数时,对当前矩形的矩形名称进行换行处理;

显示单元24,用于在处理单元23对矩形树图中各个矩形遍历完毕后,显示矩形树图。

本发明实施例提供的处理矩形树图的装置,能够在显示矩形树图以前,先遍历该矩形树图中的各个矩形,获取遍历的当前矩形的宽度、矩形名称的文字样式以及矩形名称,并根据当前矩形的宽度以及当前矩形的矩形名称的文字样式,确定当前矩形的行字数(即当前矩形每行所能容纳的文字个数),然后当当前矩形的矩形名称的字数大于行字数时,对当前矩形的矩形名称进行换行处理,最后在对该矩形树图中的各个矩形遍历完毕后,再显示矩形树图。由此可知,当矩形名称的长度大于矩形的宽度而无法单行显示时,本发明可以对该矩形名称先进行换行处理,再进行显示,从而使得用户能够通过矩形树图直观获知各个矩形所代表的数据,而无需用户必须通过将鼠标光标移至矩形名称的长度大于矩形宽度的矩形区域,才可获 知矩形名称,进而简化了用户操作,提高了获取矩形名称的效率。

进一步的,如图4所示,确定单元22,包括:

计算模块221,用于根据当前矩形的矩形名称对应的文字样式中文字尺寸以及文字间距,计算当前矩形对应的文字空间宽度,文字空间宽度为每个文字占用矩形的平均宽度;

确定模块222,用于基于当前矩形的宽度以及计算模块221获得的文字空间宽度,确定当前矩形的行字数。

进一步的,处理单元23,用于在当前矩形的矩形名称中,每隔行字数个文字,添加一个换行符。

进一步的,如图4所示,该装置还包括:

获取单元25,用于在若当前矩形的矩形名称的字数大于行字数,则对当前矩形的矩形名称进行换行处理之前,获取当前矩形的高度;

确定单元22,还用于根据获取单元25获取的当前矩形的高度以及当前矩形的矩形名称的文字样式,确定当前矩形的列字数,列字数为矩形每列所能容纳的文字个数;

运算单元26,用于将确定单元22获得的行字数与列字数相乘,获得当前矩形所能容纳的文字总数;

处理单元23,还用于当运算单元26获得的文字总数大于等于当前矩形的矩形名称的字数时,对当前矩形的矩形名称进行换行处理。

进一步的,如图4所示,该装置还包括:

更换单元27,用于当运算单元26获得的文字总数小于当前矩形的矩形名称的字数时,根据当前矩形的矩形名称的字数、当前矩形的宽度以及当前矩形的高度,更换当前矩形的矩形名称对应的文字样式;

处理单元23,还用于基于更换单元27更换后的文字样式,对当前矩形的矩形名称进行换行处理。

该装置实施例与前述方法实施例对应,为便于阅读,本装置实施例不再对前述方法实施例中的细节内容进行逐一赘述,但应当明确,本实施例中的装置能够对应实现前述方法实施例中的全部内容。

所述处理矩形树图的装置包括处理器和存储器,上述遍历单元、确定 单元、处理单元和显示单元等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。

处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数来简化用户操作。

存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flashram),存储器包括至少一个存储芯片。

本申请还提供了一种计算机程序产品,当在数据处理设备上执行时,适于执行初始化有如下方法步骤的程序代码:

遍历待显示的矩形树图中的各个矩形,获得遍历的当前矩形的宽度、矩形名称的文字样式以及矩形名称,所述文字样式包括文字尺寸和文字间距;

根据所述当前矩形的宽度以及所述当前矩形的矩形名称的文字样式,确定所述当前矩形的行字数,所述行字数为矩形每行所能容纳的文字个数;

若所述当前矩形的矩形名称的字数大于所述行字数,则对所述当前矩形的矩形名称进行换行处理;

在对所述矩形树图中各个矩形遍历完毕后,显示所述矩形树图。

本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产 生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

在一个典型的配置中,计算设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。

存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flashram)。存储器是计算机可读介质的示例。

计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitorymedia),如调制的数据信号和载波。

以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之 内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

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