气泡图的生成方法及装置与流程

文档序号:22966875发布日期:2020-11-19 21:39阅读:264来源:国知局
气泡图的生成方法及装置与流程
本发明涉及数据图表领域,特别是指一种气泡图的生成方法及装置。
背景技术
:气泡图是数据可视化图表中,最基本也是最为重要的一类图表,是最有效的可用分析工具之一,它能直观地显示三个维度的数据对比,即:横轴数值、纵轴数值、气泡大小。气泡图与散点图相似,不同之处在于,气泡图允许在图表中额外加入一个表示大小的变量,实际上,这就像以二维方式绘制包含三个变量的图表一样。现有气泡图的创建方法中,根据目标数值确定多个目标区间,即气泡在坐标系中的位置或范围,并在映射区间内创建气泡,但是数据的特性会影响最终的视觉效果,当数据分布不均匀或者数据的数量级差异较大时,会使得气泡图不仅在整体的视觉效果上比较糟糕,而且使用气泡图的用户从气泡图上无法快速直观地获取自己想查看的数据,降低了气泡图的价值。技术实现要素:本发明要解决的技术问题是提供一种气泡图的生成方法及装置,能够使得用户从气泡图上快速直观地获取自己想查看的数据,提高气泡图的价值。为解决上述技术问题,本发明的实施例提供技术方案如下:一方面,提供一种气泡图的生成方法,包括:获取待显示的目标数据序列,所述目标数据序列包括多组目标数据,每组目标数据包括目标数值和至少一个维度字段;确定气泡图的坐标系,并根据所选取的坐标系从所述目标数据序列中选取所述目标数值对应的维度字段;按照目标数值的大小,对所述目标数据序列中的所有目标数值进行排序,并按照预设的分组数对排序后的目标数值进行分组,其中,分组结果需满足取值相同的目标数值位于同一组;根据分组数与气泡半径基数确定每一组目标数值的气泡半径,每一组目标数值对应同一气泡半径;根据所确定的气泡半径在所述坐标系中生成气泡图。进一步地,所述确定气泡图的坐标系,并根据所选取的坐标系从所述目标数据序列中选取所述目标数值对应的维度字段包括以下任一种:在气泡图的坐标系为地理坐标系时,从所述目标数据序列中选取至少一个地理维度;在气泡图的坐标系为笛卡尔坐标系时,从所述目标数据序列中选取以下任一种:至少两个数值型维度;至少两个类别型维度;至少一个数值型维度和至少一个类别型维度。进一步地,所述按照目标数值的大小,对所述目标数据序列中的所有目标数值进行排序,并按照预设的分组数对排序后的目标数值进行分组,其中,分组结果需满足取值相同的目标数值位于同一组包括:按照目标数值的大小,对所述目标数据序列中的所有目标数值进行排序,得到第一目标数值序列;合并取值相同的目标数值,得到第二目标数值序列,并记录取值相同的目标数值的个数k,k为正整数;根据所述第二目标数值序列生成第三序列,所述第三序列中的元素与第二目标数值序列中的目标数值一一对应,且所述第三序列中的元素为第二目标数值序列中对应目标数值的k值;按照预设的分组数p对所述第三序列中的元素进行分组,前p-1组元素之和均等于q,且q等于n/p向下取整,n为目标数值的个数,p为大于1的整数;根据所述第三序列的分组结果和所述第三序列中元素与目标数值的对应关系,得到目标数值的分组结果。进一步地,还包括计算气泡半径基数的步骤,所述计算气泡半径基数的步骤包括:根据显示气泡图的矩形图表区域所包括的像素计算所述气泡半径基数c:c=(x+y)/2n,其中,x为所述矩形图表区域的长度,y为所述矩形图表区域的高度,单位为像素,n为目标数值的个数。进一步地,所述根据分组数与气泡半径基数确定每一组目标数值的气泡半径包括:以所述气泡半径基数为单位确定气泡半径的取值区间;根据分组数p在所述取值区间中依次取p个气泡半径值,其中,第1个气泡半径值为所述取值区间的最小值,第p个气泡半径值为所述取值区间的最大值,且相邻气泡半径值之间的差值均相等;按照从小到大的顺序对p组目标数值进行排序,第m组目标数值的气泡半径为第m个气泡半径值,m为大于等于1小于等于p的整数。进一步地,所述根据所确定的气泡半径在所述坐标系中生成气泡图之后,所述方法还包括以下至少一种:接收针对一气泡的第一触发指令,以提示框形式显示所述气泡的维度值和目标数值;接收针对一气泡的第二触发指令,以提示框形式显示与所述气泡同组的目标数据的目标数值。本发明实施例还提供了一种气泡图的生成装置,包括:获取模块,用于获取待显示的目标数据序列,所述目标数据序列包括多组目标数据,每组目标数据包括目标数值和至少一个维度字段;数据选取模块,用于确定气泡图的坐标系,并根据所选取的坐标系从所述目标数据序列中选取所述目标数值对应的维度字段;分组模块,用于按照目标数值的大小,对所述目标数据序列中的所有目标数值进行排序,并按照预设的分组数对排序后的目标数值进行分组,其中,分组结果需满足取值相同的目标数值位于同一组;气泡半径确定模块,用于根据分组数与气泡半径基数确定每一组目标数值的气泡半径,每一组目标数值对应同一气泡半径;生成模块,用于根据所确定的气泡半径在所述坐标系中生成气泡图。进一步地,所述数据选取模块包括以下任一单元:第一选取单元,用于在气泡图的坐标系为笛卡尔坐标系时,从所述目标数据序列中选取以下任一种:至少两个数值型维度;至少两个类别型维度;至少一个数值型维度和至少一个类别型维度;第二选取单元,用于在气泡图的坐标系为地理坐标系时,从所述目标数据序列中选取至少一个地理维度。进一步地,所述分组模块包括:排序单元,用于按照目标数值的大小,对所述目标数据序列中的所有目标数值进行排序,得到第一目标数值序列;合并单元,用于合并取值相同的目标数值,得到第二目标数值序列,并记录取值相同的目标数值的个数k,k为正整数;第三序列生成单元,用于根据所述第二目标数值序列生成第三序列,所述第三序列中的元素与第二目标数值序列中的目标数值一一对应,且所述第三序列中的元素为第二目标数值序列中对应目标数值的k值;分组单元,用于按照预设的分组数p对所述第三序列中的元素进行分组,前p-1组元素之和均等于q,且q等于n/p向下取整,n为目标数值的个数,p为大于1的整数;处理单元,用于根据所述第三序列的分组结果和所述第三序列中元素与目标数值的对应关系,得到目标数值的分组结果。进一步地,还包括:计算模块,用于根据显示气泡图的矩形图表区域所包括的像素计算所述气泡半径基数c:c=(x+y)/2n,其中,x为所述矩形图表区域的长度,y为所述矩形图表区域的高度,单位为像素,n为目标数值的个数。进一步地,所述气泡半径确定模块包括:取值区间选取单元,用于以所述气泡半径基数为单位确定气泡半径的取值区间;取值单元,用于根据分组数p在所述取值区间中依次取p个气泡半径值,其中,第1个气泡半径值为所述取值区间的最小值,第p个气泡半径值为所述取值区间的最大值,且相邻气泡半径值之间的差值均相等;气泡半径选取单元,用于按照从小到大的顺序对p组目标数值进行排序,第m组目标数值的气泡半径为第m个气泡半径值,m为大于等于1小于等于p的整数。进一步地,所述装置还包括以下至少一种:第一显示模块,用于接收针对一气泡的第一触发指令,以提示框形式显示所述气泡的维度值和目标数值;第二显示模块,用于接收针对一气泡的第二触发指令,以提示框形式显示与所述气泡同组的目标数据的目标数值。本发明实施例还提供了一种气泡图的生成设备,包括:处理器;和存储器,在所述存储器中存储有计算机程序指令,其中,在所述计算机程序指令被所述处理器运行时,使得所述处理器执行如上所述的气泡图的生成方法中的步骤。本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器运行时,使得所述处理器执行如上所述的气泡图的生成方法中的步骤。本发明的实施例具有以下有益效果:上述方案中,按照目标数值的大小,对目标数据序列中的所有目标数值进行排序,并按照预设的分组数对排序后的目标数值进行分组,其中,分组结果需满足取值相同的目标数值位于同一组,根据分组数与气泡半径基数确定每一组目标数值的气泡半径,每一组目标数值对应同一气泡半径,这样气泡的半径与目标数值的特性无关,当目标数值分布不均匀或者目标数值的数量级差异较大时,也能保证气泡图整体的视觉效果,使得用户能够从气泡图上快速直观地获取自己想查看的数据,提高气泡图的价值;另外,本实施例根据目标数据序列的维度确定气泡图的坐标系,使得气泡图不仅适用于数值型笛卡尔坐标系,还可以适用于其他类型的坐标系。附图说明图1为本发明实施例气泡图的生成方法的流程示意图;图2为本发明实施例从目标数据序列中选取字段的流程示意图;图3为本发明实施例对目标数值进行分组的流程示意图;图4为本发明实施例确定每一组目标数值的气泡半径的流程示意图;图5为本发明实施例生成气泡图的流程示意图;图6为本发明实施例生成的气泡图的示意图;图7为本发明实施例以提示框形式显示气泡的维度值和目标数值的示意图;图8为本发明实施例以提示框形式显示与气泡同组的目标数据的目标数值的示意图;图9为本发明实施例气泡图的生成装置的结构框图;图10为本发明实施例气泡图的生成设备的组成示意图。具体实施方式为使本发明的实施例要解决的技术问题、技术方案和优点更加清楚,下面将结合附图及具体实施例进行详细描述。通常制作气泡图有两个目的,第一,是观察某一数据在特定维度下的绝对大小,例如,产品7月份的销量,北京地区购买的数量等;第二,通过气泡的相对大小,得到特定维度下某一数据的排行,例如,产品销售额排行20%的地区在哪里,产品销量最差的10%分布在哪几个月等。现有气泡图的创建方法中,公开了根据目标数值确定多个目标区间,即气泡在坐标系中的位置或范围,并在映射区间内创建气泡。但现有技术仅是根据数据的绝对大小来创建气泡,这样当数据分布不均匀或者数据的数量级差异较大时,气泡的大小相差过大,将不能从气泡图上直观地确定数据的排行。另外,现有技术对气泡的大小如何确定没有明确的描述;当数据过于集中在某一区间时,需要人工干预重新分配目标区间,直到所有的目标数值都落在不同的目标区间内,气泡图生成效率低下;再者,现有的气泡图只能应用于数值型的笛卡尔直角坐标系,对于类别型的笛卡尔直角坐标系和地理(地图)坐标系并不适用。为了解决上述问题,本发明的实施例提供一种气泡图的生成方法及装置,能够使得用户从气泡图上快速直观地获取自己想查看的数据,提高气泡图的价值。实施例一本发明实施例提供一种气泡图的生成方法,如图1所示,包括:步骤101:获取待显示的目标数据序列,所述目标数据序列包括多组目标数据,每组目标数据包括目标数值和至少一个维度字段;待显示的目标数据通常以二维表的形式存储在关系型数据库中,每一列数据是一个字段。目标数据可以分为两类,维度和度量。维度是业务所关注的角度,例如时间,地点,产品类型等,这些都是常用的维度字段。度量是业务最终关注的统计数字,为数值型,例如销售额,数量等等。如表1所示,其中,a,b,c分别代表维度字段,m代表度量字段。表1abcm…a1b1c1m1…a2b2c2m2………………anb4cnmn…待显示的目标数据序列包括多组目标数据,每组目标数据包括(a,b,c,m,…)等字段。步骤102:确定气泡图的坐标系,并根据所选取的坐标系从所述目标数据序列中选取所述目标数值对应的维度字段;气泡图的坐标系包括极坐标,笛卡尔直角坐标系和地理坐标系,其中,笛卡尔直角坐标系需要两个维度和至少一个度量来生成气泡图,地理坐标系需要一个或两个维度以及至少一个度量来生成气泡图。具体地,可以根据用户的业务目标确定气泡图的坐标系,比如需要气泡图显示预设时间段在预设地点产品的销量,则选取的坐标系可以为地理坐标系,在确定坐标系后,根据坐标系所需要的维度从目标数据序列中选取所述目标数值对应的维度字段。在气泡图的坐标系为笛卡尔坐标系时,可以从所述目标数据序列中选取以下任一种:至少两个数值型维度;至少两个类别型维度;至少一个数值型维度和至少一个类别型维度。比如在气泡图的坐标系为数值型的笛卡尔直角坐标系时,从目标数据序列中选取的维度可以包括至少两个数值维度字段;在气泡图的坐标系为类别型的笛卡尔直角坐标系时,从目标数据序列中选取的维度可以包括至少两个类别型维度字段;在气泡图的坐标系为地理坐标系时,选取的维度可以包括至少一个地理维度,比如包括两个经纬度的维度字段或者一个行政区域的维度字段。一具体示例中,从目标数据序列中选取字段的方法如图2所示,包括以下步骤:步骤201:获取目标数据序列;步骤202:判断气泡图的坐标系;步骤203:在坐标系为笛卡尔坐标系时,转向步骤204;步骤204:从目标数据序列中选取两个维度字段及度量字段(即目标数值)。步骤205:在坐标系为地理坐标系时,转向步骤206和步骤208;步骤206:在地理坐标系的坐标为经纬度时,转向步骤207;步骤208:在地理坐标系的坐标为行政区域时,转向步骤209;步骤207:从目标数据序列中选取两个经纬度的维度字段及度量字段(即目标数值)。步骤209:从目标数据序列中选取一个行政区域的维度字段及度量字段(即目标数值)。经过上述步骤即可确定生成气泡图所需要输入的数据。步骤103:按照目标数值的大小,对所述目标数据序列中的所有目标数值进行排序,并按照预设的分组数对排序后的目标数值进行分组,其中,分组结果需满足取值相同的目标数值位于同一组;具体地,如图3所示,步骤103可以包括以下步骤:步骤301:按照目标数值的大小,对所述目标数据序列中的所有目标数值进行排序,得到第一目标数值序列;步骤302:合并取值相同的目标数值,得到第二目标数值序列,并记录取值相同的目标数值的个数k,k为正整数;步骤303:根据所述第二目标数值序列生成第三序列,所述第三序列中的元素与第二目标数值序列中的目标数值一一对应,且所述第三序列中的元素为第二目标数值序列中对应目标数值的k值;步骤304:按照预设的分组数p对所述第三序列中的元素进行分组,前p-1组元素之和均等于q,且q等于n/p向下取整,n为目标数值的个数,p为大于1的整数;步骤305:根据所述第三序列的分组结果和所述第三序列中元素与目标数值的对应关系,得到目标数值的分组结果。由于度量字段(即目标数值)是数值型的,因此,可以按照目标数值的大小对所有目标数值进行排序,得到第一目标数值序列。比如,选取的度量字段包括:m1,m2,…,mn,按照值的从小到大进行排序,可以得到第一目标数值序列m={m1,m2,…,mn},第一目标数值序列的元素个数为n。遍历第一目标数值序列,其中存在取值相同的目标数值,不同取值的目标数值的个数为d,将第一目标数值序列中取值相同的目标数值进行合并,得到第二目标数值序列m’={m’1,m’2,…,m’d},第二目标数值序列的元素个数为d,同时记录相同取值的目标数值的个数k,这样便于后续步骤对目标数值进行分组。例如原始目标数值序列为包括10个元素的目标数值序列:{71,23,26,85,121,26,17,24,51,71}排序得到的第一目标数值序列为:m={17,23,24,26,26,51,71,71,85,121};其中不同取值的目标数值的数量为8,合并取值相同的目标数值后得到的第二目标数值序列为:m’={17,23,24,26,51,71,85,121},其中,目标数值17对应的个数k为1,目标数值23对应的个数k为1,目标数值24对应的个数k为1,目标数值26对应的个数k为2,目标数值51对应的个数k为1,目标数值71对应的个数k为2,目标数值85对应的个数k为1,目标数值121对应的个数k为1。之后对目标数值进行分组,分组的目的是将目标数值序列按照用户输入的分组数尽量均分成不同的档位,分组的原则是相同的目标数值必须落入同一档位。当用户输入的分组数为p(1<p<=d)时,每组元素的个数为对n/p向下取整,即每组元素的个数q=floor(n/p)。首先需要根据序列m’生成由k值组成的序列(即第三序列),该第三序列中每一元素与序列m’中的元素一一对应,且该第三序列中每个元素为序列m’中的元素对应的k值。然后,找到将该序列进行p等分的分位点,分位点的个数为p-1,每个分位点之前的元素个数为q,按照顺序,首先定位到第一分位点,根据元素个数微调分位点位置,然后定位到第二分位点,直到p-1分位点,将序列分成p个次级序列,每一次级序列即一组目标数值,完成目标数值的分组,例如序列m’为:m’={17,23,24,26,51,71,85,121}生成由k组成的第三序列为:{1,1,1,2,1,2,1,1}假设用户输入分组数p=3时,则可以得到每组的元素个数q=floor(10/3)=3,对由k组成的序列进行分组的结果为:{1,1,1}{2,1}{2,1,1}将上述分组结果还原成目标数值的分组结果,目标数值的分组结果为:m1’={17,23,24}m2’={26,26,51}m3’={71,71,85,121}。步骤104:根据分组数与气泡半径基数确定每一组目标数值的气泡半径,每一组目标数值对应同一气泡半径;气泡不是一维的可视化图形,很难直观的表示绝对的数值,因此本实施例利用气泡表示相对的数值关系,对目标数值进行分组,每一组目标数值对应同一气泡半径,这样可以使得用户在合适的区间范围内,直观的区分目标数值的大小和分档关系。具体地,如图4所示,步骤104包括以下步骤:步骤401:计算气泡半径基数;本实施例中以根据显示气泡图的矩形图表区域所包括的像素计算气泡半径基数c,这样可以使得气泡图的气泡半径以像素为单位,有不随着伸缩发生比例变化的好处。首先接收用户输入的显示气泡图的矩形图表区域的大小,矩形图表区域的长为x,高为y,以像素为单位。气泡半径基数c的计算公式如下:c=(x+y)/2n,其中n为第一目标数值序列中元素的个数。气泡半径基数c是进行气泡半径大小分组的中值,也是进行气泡半径映射时的基数。步骤402:以所述气泡半径基数为单位确定气泡半径的取值区间;首先需要先设置气泡半径的最大值与最小值,以确定映射的范围。如果气泡半径过小,用户不易观察,如果气泡半径过大,容易超出图表范围,因此需要设置气泡半径的合理取值区间。经过测试,气泡半径在【0.5c,1.5c】之间变换时,大小合适,相邻气泡之间的大小容易区分,既不会因为气泡太大以至于超出图表范围,又不会因为气泡太小而导致气泡不易观察。当然,气泡半径的取值区间并不局限于【0.5c,1.5c】,还可以根据用户需要进行变换,比如当分组数比较多(超过7组)时,可以扩大气泡半径的取值区间。步骤403:根据分组数p在所述取值区间中依次取p个气泡半径值,其中,第1个气泡半径值为所述取值区间的最小值,第p个气泡半径值为所述取值区间的最大值,且相邻气泡半径值之间的差值均相等;根据分组数,将气泡半径的取值区间均匀地切分为p组并得到p个气泡半径值,例如当分组数为3时,可以得到三个气泡半径值分别为0.5c,c,1.5c,当分组数为4时,可以得到四个气泡半径值分别为0.5c,5/6c,7/6c,1.5c,以此类推。步骤404:按照从小到大的顺序对p组目标数值进行排序,第m组目标数值的气泡半径为第m个气泡半径值,m为大于等于1小于等于p的整数。将p组目标数值按照从小到大的顺序分别与p个气泡半径值一一对应起来。假设用户在800*500的区域绘制气泡图,x=800,y=500,已知目标数值的个数n=10,计算得到气泡半径基数为c=(800+500)/2*10=65(px),则气泡半径的取值区间为【0.5*65,1.5*65】=【32.5,97.5】,用户输入的分组数为3,进而得出三个气泡半径值分别为32.5px,65px,97.5px,将3组目标数值按照从小到大的顺序分别与3个气泡半径值一一对应,则可以得到m1’={17,23,24}对应的气泡半径值为32.5px,m2’={26,26,51}对应的气泡半径值为65px,m3’={71,71,85,121}对应的气泡半径值为97.5px。步骤105:根据所确定的气泡半径在所述坐标系中生成气泡图。生成气泡图需要确定气泡的中心点以及气泡半径大小,可以通过维度序列确定气泡的中心点,具体可以利用现有技术确定气泡的中心点,在此不再赘述。另外,通过上述步骤已经得到气泡半径的大小,结合第三方图标库api(applicationprogramminginterface,应用程序编程接口)(以气泡位置和大小为参数),就可以将气泡图绘制在坐标系中。其中,位于同一组的目标数值被映射成同样大小的气泡,这样用户可以从气泡图中直观地确定同一档次的目标数值以及不同档次的目标数值。具体地,如图5所示,步骤105包括以下步骤:步骤501:获取目标数值对应的维度;步骤502:获取目标数值对应的气泡半径;步骤503:根据目标数值对应的维度确定气泡的中心点,根据气泡的中心点和气泡半径生成气泡。一具体示例中,假设维度序列a,b分别为:a={1月,2月,3月,4月,5月,6月,7月,8月,9月,10月};b={北京,上海,广州,深圳,成都,武汉,沈阳,乌鲁木齐,西安,南京};m={71,23,26,85,121,26,17,24,51,71};生成的气泡图具体如图6所示。由于同组内不同取值的目标数值被映射成同样大小的气泡,从气泡半径上用户无法区分同一组目标数值的大小,因此可以通过辅助的提示框来使用户观察到同组内目标数值并进行比较,具体地,可以在接收到针对一气泡的第一触发指令时,以提示框形式显示所述气泡的维度值和目标数值;还可以在接收到针对一气泡的第二触发指令时,以提示框形式显示与所述气泡同组的目标数据的目标数值。具体地,第一触发指令可以是在鼠标划过气泡后触发,如图7所示,在鼠标划过气泡后,提示框显示该气泡所在的维度a,b的值,以及度量m的值。具体地,第二触发指令可以是在鼠标点击气泡后触发,如图8所示,在鼠标点击气泡后,提示框可以显示同组内不同的目标数值,以及目标数值之间的大小比较。本实施例给出了生成气泡图的具体方案,本实施例中,按照目标数值的大小,对目标数据序列中的所有目标数值进行排序,并按照预设的分组数对排序后的目标数值进行分组,其中,分组结果需满足取值相同的目标数值位于同一组,根据分组数与气泡半径基数确定每一组目标数值的气泡半径,每一组目标数值对应同一气泡半径,这样气泡的半径与目标数值的特性无关,当目标数值分布不均匀或者目标数值的数量级差异较大时,也能保证气泡图整体的视觉效果,使得用户能够从气泡图上快速直观地获取自己想查看的数据,提高气泡图的价值;另外,本实施例根据目标数据序列的维度确定气泡图的坐标系,使得气泡图不仅适用于数值型笛卡尔坐标系,还可以适用于其他类型的坐标系。另外,在用户输入分组数后,从获取数据到生成可视化的气泡图,中间步骤无需人工干预,气泡图生成效率高。实施例二本发明实施例还提供了一种气泡图的生成装置,如图9所示,包括:获取模块21,用于获取待显示的目标数据序列,所述目标数据序列包括多组目标数据,每组目标数据包括目标数值和至少一个维度字段;数据选取模块22,用于确定气泡图的坐标系,并根据所选取的坐标系从所述目标数据序列中选取所述目标数值对应的维度字段;分组模块23,用于按照目标数值的大小,对所述目标数据序列中的所有目标数值进行排序,并按照预设的分组数对排序后的目标数值进行分组,其中,分组结果需满足取值相同的目标数值位于同一组;气泡半径确定模块24,用于根据分组数与气泡半径基数确定每一组目标数值的气泡半径,每一组目标数值对应同一气泡半径;生成模块25,用于根据所确定的气泡半径在所述坐标系中生成气泡图。本实施例中,按照目标数值的大小,对目标数据序列中的所有目标数值进行排序,并按照预设的分组数对排序后的目标数值进行分组,其中,分组结果需满足取值相同的目标数值位于同一组,根据分组数与气泡半径基数确定每一组目标数值的气泡半径,每一组目标数值对应同一气泡半径,这样气泡的半径与目标数值的特性无关,当目标数值分布不均匀或者目标数值的数量级差异较大时,也能保证气泡图整体的视觉效果,使得用户能够从气泡图上快速直观地获取自己想查看的数据,提高气泡图的价值;另外,本实施例根据目标数据序列的维度确定气泡图的坐标系,使得气泡图不仅适用于数值型笛卡尔坐标系,还可以适用于其他类型的坐标系。进一步地,所述数据选取模块22包括以下任一单元:第一选取单元,用于在气泡图的坐标系为笛卡尔坐标系时,从所述目标数据序列中选取以下任一种:至少两个数值型维度;至少两个类别型维度;至少一个数值型维度和至少一个类别型维度;第二选取单元,用于在气泡图的坐标系为地理坐标系时,从所述目标数据序列中选取至少一个地理维度。进一步地,所述分组模块23包括:排序单元,用于按照目标数值的大小,对所述目标数据序列中的所有目标数值进行排序,得到第一目标数值序列;合并单元,用于合并取值相同的目标数值,得到第二目标数值序列,并记录取值相同的目标数值的个数k,k为正整数;第三序列生成单元,用于根据所述第二目标数值序列生成第三序列,所述第三序列中的元素与第二目标数值序列中的目标数值一一对应,且所述第三序列中的元素为第二目标数值序列中对应目标数值的k值;分组单元,用于按照预设的分组数p对所述第三序列中的元素进行分组,前p-1组元素之和均等于q,且q等于n/p向下取整,n为目标数值的个数,p为大于1的整数;处理单元,用于根据所述第三序列的分组结果和所述第三序列中元素与目标数值的对应关系,得到目标数值的分组结果。进一步地,该装置还包括:计算模块,用于根据显示气泡图的矩形图表区域所包括的像素计算所述气泡半径基数c:c=(x+y)/2n,其中,x为所述矩形图表区域的长度,y为所述矩形图表区域的高度,单位为像素,n为目标数值的个数。进一步地,所述气泡半径确定模块24包括:取值区间选取单元,用于以所述气泡半径基数为单位确定气泡半径的取值区间;取值单元,用于根据分组数p在所述取值区间中依次取p个气泡半径值,其中,第1个气泡半径值为所述取值区间的最小值,第p个气泡半径值为所述取值区间的最大值,且相邻气泡半径值之间的差值均相等;气泡半径选取单元,用于按照从小到大的顺序对p组目标数值进行排序,第m组目标数值的气泡半径为第m个气泡半径值,m为大于等于1小于等于p的整数。进一步地,所述装置还包括以下至少一种:第一显示模块,用于接收针对一气泡的第一触发指令,以提示框形式显示所述气泡的维度值和目标数值;第二显示模块,用于接收针对一气泡的第二触发指令,以提示框形式显示与所述气泡同组的目标数据的目标数值。实施例三本发明实施例还提供了一种气泡图的生成设备30,如图10所示,包括:处理器32;和存储器34,在所述存储器34中存储有计算机程序指令,其中,在所述计算机程序指令被所述处理器运行时,使得所述处理器32执行以下步骤:获取待显示的目标数据序列,所述目标数据序列包括多组目标数据,每组目标数据包括目标数值和至少一个维度字段;确定气泡图的坐标系,并根据所选取的坐标系从所述目标数据序列中选取所述目标数值对应的维度字段;按照目标数值的大小,对所述目标数据序列中的所有目标数值进行排序,并按照预设的分组数对排序后的目标数值进行分组,其中,分组结果需满足取值相同的目标数值位于同一组;根据分组数与气泡半径基数确定每一组目标数值的气泡半径,每一组目标数值对应同一气泡半径;根据所确定的气泡半径在所述坐标系中生成气泡图。本实施例中,按照目标数值的大小,对目标数据序列中的所有目标数值进行排序,并按照预设的分组数对排序后的目标数值进行分组,其中,分组结果需满足取值相同的目标数值位于同一组,根据分组数与气泡半径基数确定每一组目标数值的气泡半径,每一组目标数值对应同一气泡半径,这样气泡的半径与目标数值的特性无关,当目标数值分布不均匀或者目标数值的数量级差异较大时,也能保证气泡图整体的视觉效果,使得用户能够从气泡图上快速直观地获取自己想查看的数据,提高气泡图的价值;另外,本实施例根据目标数据序列的维度确定气泡图的坐标系,使得气泡图不仅适用于数值型笛卡尔坐标系,还可以适用于其他类型的坐标系。进一步地,如图3所示,气泡图的生成设备30还包括网络接口31、输入设备33、硬盘35、和显示设备36。上述各个接口和设备之间可以通过总线架构互连。总线架构可以是可以包括任意数量的互联的总线和桥。具体由处理器32代表的一个或者多个中央处理器(cpu),以及由存储器34代表的一个或者多个存储器的各种电路连接在一起。总线架构还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其它电路连接在一起。可以理解,总线架构用于实现这些组件之间的连接通信。总线架构除包括数据总线之外,还包括电源总线、控制总线和状态信号总线,这些都是本领域所公知的,因此本文不再对其进行详细描述。所述网络接口31,可以连接至网络(如因特网、局域网等),从网络中获取相关数据,例如待显示的目标数据序列,并可以保存在硬盘35中。所述输入设备33,可以接收操作人员输入的各种指令,并发送给处理器32以供执行。所述输入设备33可以包括键盘或者点击设备(例如,鼠标,轨迹球(trackball)、触感板或者触摸屏等。所述显示设备36,可以将处理器32执行指令获得的结果进行显示。所述存储器34,用于存储操作系统运行所必须的程序和数据,以及处理器32计算过程中的中间结果等数据。可以理解,本发明实施例中的存储器34可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(rom)、可编程只读存储器(prom)、可擦除可编程只读存储器(eprom)、电可擦除可编程只读存储器(eeprom)或闪存。易失性存储器可以是随机存取存储器(ram),其用作外部高速缓存。本文描述的装置和方法的存储器34旨在包括但不限于这些和任意其它适合类型的存储器。在一些实施方式中,存储器34存储了如下的元素,可执行模块或者数据结构,或者他们的子集,或者他们的扩展集:操作系统341和应用程序342。其中,操作系统341,包含各种系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务。应用程序342,包含各种应用程序,例如浏览器(browser)等,用于实现各种应用业务。实现本发明实施例方法的程序可以包含在应用程序342中。上述处理器32,当调用并执行所述存储器34中所存储的应用程序和数据,具体的,可以是获取待显示的目标数据序列,所述目标数据序列包括多组目标数据,每组目标数据包括目标数值和至少一个维度字段;确定气泡图的坐标系,并根据所选取的坐标系从所述目标数据序列中选取所述目标数值对应的维度字段;按照目标数值的大小,对所述目标数据序列中的所有目标数值进行排序,并按照预设的分组数对排序后的目标数值进行分组,其中,分组结果需满足取值相同的目标数值位于同一组;根据分组数与气泡半径基数确定每一组目标数值的气泡半径,每一组目标数值对应同一气泡半径;根据所确定的气泡半径在所述坐标系中生成气泡图。本发明上述实施例揭示的方法可以应用于处理器32中,或者由处理器32实现。处理器32可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器32中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器32可以是通用处理器、数字信号处理器(dsp)、专用集成电路(asic)、现成可编程门阵列(fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器34,处理器32读取存储器34中的信息,结合其硬件完成上述方法的步骤。可以理解的是,本文描述的这些实施例可以用硬件、软件、固件、中间件、微码或其组合来实现。对于硬件实现,处理单元可以实现在一个或多个专用集成电路(asic)、数字信号处理器dsp)、数字信号处理设备(dspd)、可编程逻辑设备(pld)、现场可编程门阵列(fpga)、通用处理器、控制器、微控制器、微处理器、用于执行本申请所述功能的其它电子单元或其组合中。对于软件实现,可通过执行本文所述功能的模块(例如过程、函数等)来实现本文所述的技术。软件代码可存储在存储器中并通过处理器执行。存储器可以在处理器中或在处理器外部实现。具体地,处理器32在气泡图的坐标系为数值型笛卡尔坐标系时,从所述目标数据序列中选取至少两个数值型维度;在气泡图的坐标系为类别型笛卡尔坐标系时,从所述目标数据序列中选取至少两个类别型维度;在气泡图的坐标系为地理坐标系时,从所述目标数据序列中选取至少一个地理维度。具体地,处理器32按照目标数值的大小,对所述目标数据序列中的所有目标数值进行排序,得到第一目标数值序列;合并取值相同的目标数值,得到第二目标数值序列,并记录取值相同的目标数值的个数k,k为正整数;根据所述第二目标数值序列生成第三序列,所述第三序列中的元素与第二目标数值序列中的目标数值一一对应,且所述第三序列中的元素为第二目标数值序列中对应目标数值的k值;按照预设的分组数p对所述第三序列中的元素进行分组,前p-1组元素之和均等于q,且q等于n/p向下取整,n为目标数值的个数,p为大于1的整数;根据所述第三序列的分组结果和所述第三序列中元素与目标数值的对应关系,得到目标数值的分组结果。具体地,处理器32根据显示气泡图的矩形图表区域所包括的像素计算所述气泡半径基数c:c=(x+y)/2n,其中,x为所述矩形图表区域的长度,y为所述矩形图表区域的高度,单位为像素,n为目标数值的个数。具体地,处理器32以所述气泡半径基数为单位确定气泡半径的取值区间;根据分组数p在所述取值区间中依次取p个气泡半径值,其中,第1个气泡半径值为所述取值区间的最小值,第p个气泡半径值为所述取值区间的最大值,且相邻气泡半径值之间的差值均相等;按照从小到大的顺序对p组目标数值进行排序,第m组目标数值的气泡半径为第m个气泡半径值,m为大于等于1小于等于p的整数。具体地,处理器32接收针对一气泡的第一触发指令,以提示框形式显示所述气泡的维度值和目标数值;接收针对一气泡的第二触发指令,以提示框形式显示与所述气泡同组的目标数据的目标数值。实施例四本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器运行时,使得所述处理器执行以下步骤:获取待显示的目标数据序列,所述目标数据序列包括多组目标数据,每组目标数据包括目标数值和至少一个维度字段;确定气泡图的坐标系,并根据所选取的坐标系从所述目标数据序列中选取所述目标数值对应的维度字段;按照目标数值的大小,对所述目标数据序列中的所有目标数值进行排序,并按照预设的分组数对排序后的目标数值进行分组,其中,分组结果需满足取值相同的目标数值位于同一组;根据分组数与气泡半径基数确定每一组目标数值的气泡半径,每一组目标数值对应同一气泡半径;根据所确定的气泡半径在所述坐标系中生成气泡图。本实施例中,按照目标数值的大小,对目标数据序列中的所有目标数值进行排序,并按照预设的分组数对排序后的目标数值进行分组,其中,分组结果需满足取值相同的目标数值位于同一组,根据分组数与气泡半径基数确定每一组目标数值的气泡半径,每一组目标数值对应同一气泡半径,这样气泡的半径与目标数值的特性无关,当目标数值分布不均匀或者目标数值的数量级差异较大时,也能保证气泡图整体的视觉效果,使得用户能够从气泡图上快速直观地获取自己想查看的数据,提高气泡图的价值;另外,本实施例根据目标数据序列的维度确定气泡图的坐标系,使得气泡图不仅适用于数值型笛卡尔坐标系,还可以适用于其他类型的坐标系。进一步地,所述计算机程序被处理器运行时,还使得所述处理器执行以下步骤:在气泡图的坐标系为数值型笛卡尔坐标系时,从所述目标数据序列中选取至少两个数值型维度;在气泡图的坐标系为类别型笛卡尔坐标系时,从所述目标数据序列中选取至少两个类别型维度;在气泡图的坐标系为地理坐标系时,从所述目标数据序列中选取至少一个地理维度。进一步地,所述计算机程序被处理器运行时,还使得所述处理器执行以下步骤:按照目标数值的大小,对所述目标数据序列中的所有目标数值进行排序,得到第一目标数值序列;合并取值相同的目标数值,得到第二目标数值序列,并记录取值相同的目标数值的个数k,k为正整数;根据所述第二目标数值序列生成第三序列,所述第三序列中的元素与第二目标数值序列中的目标数值一一对应,且所述第三序列中的元素为第二目标数值序列中对应目标数值的k值;按照预设的分组数p对所述第三序列中的元素进行分组,前p-1组元素之和均等于q,且q等于n/p向下取整,n为目标数值的个数,p为大于1的整数;根据所述第三序列的分组结果和所述第三序列中元素与目标数值的对应关系,得到目标数值的分组结果。进一步地,所述计算机程序被处理器运行时,还使得所述处理器执行以下步骤:根据显示气泡图的矩形图表区域所包括的像素计算所述气泡半径基数c:c=(x+y)/2n,其中,x为所述矩形图表区域的长度,y为所述矩形图表区域的高度,单位为像素,n为目标数值的个数。进一步地,所述计算机程序被处理器运行时,还使得所述处理器执行以下步骤:以所述气泡半径基数为单位确定气泡半径的取值区间;根据分组数p在所述取值区间中依次取p个气泡半径值,其中,第1个气泡半径值为所述取值区间的最小值,第p个气泡半径值为所述取值区间的最大值,且相邻气泡半径值之间的差值均相等;按照从小到大的顺序对p组目标数值进行排序,第m组目标数值的气泡半径为第m个气泡半径值,m为大于等于1小于等于p的整数。进一步地,所述计算机程序被处理器运行时,还使得所述处理器执行以下步骤:接收针对一气泡的第一触发指令,以提示框形式显示所述气泡的维度值和目标数值;接收针对一气泡的第二触发指令,以提示框形式显示与所述气泡同组的目标数据的目标数值。以上是本发明的优选实施方式,应当指出,对于本
技术领域
的普通技术人员来说,在不脱离本发明所述原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1