一种数据到图表的转换方法和装置与流程

文档序号:11250857阅读:460来源:国知局
一种数据到图表的转换方法和装置与流程

本申请属于数据处理技术领域,尤其涉及一种数据到图表的转换方法和装置。



背景技术:

数据可视化,是指根据数据的类型将数据映射至图形空间上的可视化元素,这些元素可以包括:位置、形状、颜色和大小等。图形语法是一种底层统计图形生成语言,即,通过语法构造生成复杂的图形,也就是说,以自底向上的方式组织最基本的元素从而形成更高级的元素,通过关系图的方式对数据进行表征。

关系图的特点可以归纳为:由节点和节点之间的连接关系组成。因此,数据可视化的关键就是如何在显示界面上放置节点以及如何绘制节点及节点之间的连接关系。

然而,针对如何将数据简单有效地转换为关系图,目前尚未提出有效的解决方案。



技术实现要素:

本申请目的在于提供一种数据到图表的转换方法和装置,可以有效提高数据集到图表画布的转换效率,且实现起来较为简单。

本申请提供一种数据到图表的转换方法和装置是这样实现的:

一种数据到图表的转换方法,所述方法包括:获取待转换数据集;根据预定语法规则生成所述待转换数据集中各个数据与图表画布位置之间的对应关系,以及所述各个数据之间的连接关系的表征语句;对所述表征语句进行解析,得到所述待转换数据集所对应的图表画布。

一种数据到图表的转换装置,所述装置包括:获取模块,用于获取待转换数据集;语句生成模块,用于根据预定语法规则生成所述待转换数据集中各个数据与图表画布位置之间的对应关系,以及所述各个数据之间的连接关系的表征语句;解析模块,用于对所述表征语句进行解析,得到所述待转换数据集所对应的图表画布。

本申请提供的数据到图表的转换方法和装置,可以利用预定的语法规则生成待转换数据集中各个数据与图表画布位置之间的对应关系,以及所述各个数据之间的连接关系的表征语句,然后通过对表征语句的解析就可以呈现出与该待转换数据集对应的图表画布,从而实现数据集到图表的转换。本申请提供的方法可以有效提高数据集到图表画布的转换效率,且实 现起来较为简单。利用本申请实施方案,不仅可以大大提高转换效率,还可以让用户直观地理解数据到图形空间映射关系。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1是本申请提供的数据到图表的转换方法的一种实施例的方法流程图;

图2是本申请提供的二维变量的点映射到图表中的示意图;

图3是本申请提供的不带权重的和弦图的一种实施例的示意图;

图4是本申请提供的平行坐标图的一种实施例的示意图;

图5是本申请提供的待权重的和弦图的一种实施例的示意图;

图6是本申请提供的桑基图的一种实施例的示意图;

图7是和弦图的原理示意图;

图8是弧长链接图的原理示意图;

图9是平行坐标的原理示意图;

图10是桑基图的原理示意图;

图11是本申请提供的数据到图表的转换装置的一种实施例的模型结构示意图;

图12是本申请提供的数据到图表的转换装置的另一种实施例的模块结构示意图。

具体实施方式

为了使本技术领域的人员更好地理解本申请中的技术方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。

下面结合附图对本申请所述的数据到图表的转换方法和装置进行详细的说明。图1是本申请提出的数据到图表的转换方法的一种实施例的方法流程图。虽然本申请提供了如下述实施例或附图所示的方法操作步骤或装置结构,但基于常规或者无需创造性的劳动在所述方法或装置中可以包括更多或者更少的操作步骤或模块结构。在逻辑性上不存在必要因果关系的步骤或结构中,这些步骤的执行顺序或装置的模块结构不限于本申请实施例提供的执行顺序 或模块结构。所述的方法或模块结构的在实际中的装置或终端产品执行时,可以按照实施例或者附图所示的方法或模块结构连接进行顺序执行或者并行执行(例如并行处理器或者多线程处理的环境)。

数据到图表的转换经常需要较为复杂的程序,这些数据主要是例如:excle表格、数据集等这些,例如工程所用的材料的列表、资金的流向、物品的分类等等,这些数据主要是统计学上的数据,因为如果用图表的方式进行表述,相应的会更为清楚,可读性更强一些。例如,现在有某些软件可以记录用户每个月的花费账单,这些账单在存储的时候一般是以数据集的方式进行存储,然而,如果采用图表的方式进行展示显然会更清晰一些,因为图表可以展示你每个月的花费的具体去向都有哪些类,以及每个类所占的比例等等,使得对数据的阅读更为直观清楚。

为了实现数据到图表的转换,需要确定各个数据在图表中的位置,以及数据与数据之间的连接关系,从而才能实现数据到图表的有效映射,为此,考虑到可以设定一些语法规则,这些语法规则可以表示数据在图表中的位置,也可以表示数据与数据之间的连接关系,从而系统对基于这些语法规则生成的语句进行解析,就可以实现数据到图表的转换。具体的,如图1所示,本申请提供的数据到图表的转换方法的一种实施例可以包括:

s1:获取待转换数据集;

即,接收或者从系统中提取一个待转换的数据集,可以从该数据集中生成变量,所谓的变量相当于一个参数,在生成图表的时候,一个变量可以对应一个维度,例如,可以提取出两个变量:重量和单位重量的价格。在生成变量之后,就可以对变量进行变量间的转换,从而形成一个变量空间,为了使得后续变量可以在同一空间也即同一画面进行显示,可以对变量进行标度转化,即,对变量进行归一化操作,从而实现变量间的对应。具体地,在获取到待转换的数据集后,可以执行以下操作:

s1-1:从所述待转换数据集中提取变量;

s1-2:对提取的变量进行变量间转换,形成变量空间;

s1-3:对所述变量空间进行归一化处理。

在本申请中,获取数据集,对数据集进行变量提取和标度转换后的数据,就可以按照预定的语法规则生成转换的语法了,就可以进行所谓的编码操作。

s2:根据预定语法规则生成所述待转换数据集中各个数据与图表画布位置之间的对应关系,以及所述各个数据之间的连接关系的表征语句;

即,将通过语句或者说是代码语言来表征待转换数据集中各个数据之间的连接关系,以及各个数据在图表中的位置,从而使得后续对这段代码或者说表征语句进行解析即可以实现 数据集到图表的映射,从而形成所希望生成的用于表征数据集的图表。

考虑到如果将语法规则定义的和代数运算比较贴合,那么将使得数据的表征和转换更为简单方便,在本申请中,可以根据代数运算生成预定语法规则。例如,通过代数中的“*”、“+”、“-”等来表示数据之间的联系。为了使得更容易理解本申请,在本申请中,给出了几种预定语法规则,通过这些语法规则的设定,可以较为简单地实现数据到图表的语法转换,例如:

1)通过如下语句表示两个变量集之间的横向连接关系:

position(s*t),其中,s表示第一变量集,t表示第二变量集,s*t表示横轴为变量集s,纵轴为变量集t;

为了使得s和t可以对应横向连接关系,需要设定s和t两个是行数和排列顺序相同的两个表格。s*t表示的是这两个行数和排列顺序相同的两个表格之间的横向连接。

s*t的结果可以理解为将s和t两个变量集看成行数以及排列顺序相同的两个表格的横向连接,如果s=(x,y,z),t=(a,a,b),那么,s*t可以表示为:

即,s和t这两个变量集,行数以及排列顺序等相同,在运算后,s*t可以理解为一个个(si,ti)的点的集合,映射到图表中的结果,可以如图2所示,横轴为变量集s,纵轴为变量集t。

2)通过如下语句表示两个数据之间的连接关系:

position(a+b),其中,a表示第一个数据集,b表示第二个数据集,a+b表示从数据集a到数据集b,即,通过“+”来表示两个数据之间的连接关系,也就表示关系图中的link,所起到的作用就是连接,为了使得数据集a到数据集b可以实现一一对应的连接,那么也就需要数据集a到数据集b具备相同的数据类型。

如果将position(a+b)映射到图表中,那么可以得到如图3所示的结果,图3中所示的是不带权重的和弦图。

如果将该“+”映射到平行坐标系中,那么也可以平行坐标图,例如:position(a+b+c+d)可以得到图4所示的平行坐标图,其中,a、b、c、d分别表示各个平行坐标轴,按照声明的顺序,依次连接ai、bi、ci、di四个点。

3)通过如下语句表示带权重的数据关系:

position((c+d)*e)=position(c*e1+d*e2)

其中,c表示第一个数据集,d表示第二个数据集,e表示权重,c*e1+d*e2表示从数据集c到数据集d,数据集c的权重为e1,数据集d的权重为e2。

即,在该图形语法中,+和*的代数运算符合乘法分配率,即(a+b+c+d)*e等效于a*e+b*e+c*e+d*e,其中,e表示是权重,用此语法可以绘制带权重的关联图,即,ea1表示权重值。

如果将该数据关系变换为极坐标,那么就可以形成和弦图。而对于桑基图,也是一样,在平行坐标的基础上加上权重值,而对于和弦图和桑基图的区分,在程序进行计算的时候,会根据用户声明的坐标系类型进行判断,如果是极坐标,就进行和弦图的绘制,否则绘制桑基图。

在本申请中,如图5和图6所示为position((a+b)*e)=position(a*ea+b*eb)所对应的和弦图和桑基图。

然而,值得注意的是,在上例中,虽然提出了几种按照代数运算生成的预定语法规则,但是这仅是为了更好地说明本申请,在实际执行的时候还可以其它符合表示,本申请对此不作限定,只要是预先定义一个语法规则即可,按照这个预定的语法规则将数据集转换为可以解析的语句就可以。

s3:对所述表征语句进行解析,得到所述待转换数据集所对应的图表画布。

一般情况下,将数据集转换为图表画布主要是将数据集转换为以下几种关系图,即采用图像语法的方式进行转换,图像语法所表征的就是数据和图形之间的对应规则:

2-1)弧长链接图,采用的是一维布局方式,即,节点沿某个线性轴或环排列,其中,圆弧表达节点之间的链接关系;如图7所示为和弦图的示意图,如图8所示为弧长链接图的示意图。

2-2)平行坐标,是一种通常的可视化方法,用于高维几何数据和多元数据的可视化。如图9所示为平行坐标图的一种示意图,为了表示在高维空间的一个点集,在n条平行的线的背景下(一般这n条线都竖直且等距),一个在高维空间的点被表示为一条拐点在n条平行坐标轴的折线,在第k个坐标轴上的位置就表示这个点在第k个维的取值;

2-3)桑基图,是一种特定类型的流图,用于描述一组值到另一组值的流向,在桑基图中延伸的分支宽度与数据流量的大小对应。如图10所示为桑基图的一种示意图,桑基图最明显的特征就是始末端的分支宽度总各相等,即,所有主支宽度的总和与所有分出去的分支宽度的总和相等,从而保持能量的平衡,因此,桑基图通常应用于能源、材料成分、金融等数据的可视化分析。

上述图形语法的基本表示为:以point(position(x*y))为例,point表示图形,即最后需要生成的点图,position表示位置,position(x*y)表示数据在图形中的位置,该位置由x和y两个维度的变量决定,其中,x*y的数据处理结果可以理解为:

对于上述的图,都可以采用极坐标的方式来表示,那相应的就会显示为和弦图。

在本申请中,为了实现坐标系的表示,在生成表征语句的时候,可以增加一个标识语句,用于标识是生成平行坐标还是生成极坐标。即,可以先确定坐标系是否为极坐标系;如果是,则对所述表征语句进行解析,得到所述待转换数据集所对应的和弦图;如果不是,则对所述表征语句进行解析,得到所述待转换数据集所对应的平行坐标图或桑基图。

在对所述表征语句进行解析,得到所述待转换数据集所对应的图表画布自后,可以对得到的图表画布进行坐标变换以及渲染等操作,从而得到最终的图表。

为了对上述数据到图表的转换方法进行具体说明,在本例中,还提供了一个应用上述数据到图表的转换方法的具体场景,然而,值得注意的是,该具体实施例仅是为了更好地说明本申请,并不构成对本申请的不当限定。

基于上述的数据到图表的转换方法将数据集转换为图表可以包括以下步骤:

步骤1:从数据集中生成变量;

步骤2:进行变量间的转换,从而形成变量空间;

步骤3:进行标度转换,即,将变量进行归一化操作;

其中,标度转换就是放大或缩小,也即码尺的变换,是将对应参数值的大小转换成能直接显示有量纲的被测工程量数值,也称为工程转换。在生产的过程中,各个参数都有着不同的量纲,例如:压力的单位是pa,流量的单位是m3/h,温度的单位是℃等。可以通过测量仪表转换成模拟电信号,经过a/d转换后成为相应的数字量仅仅对应被测工程量参数值的大小,并不是原来带有量纲的参数值。

标度变换有线性和非线性之分,可以根据实际要求选用适当的标度变换方法:

1)线性标度变换:

对于一般的线性仪表而言,参数值与a/d转换结果之间是线性关系,其标度变换公式可以表示为:

ax=a0+(am-a0)(nx-n0)/(nm-n0)

其中,a0表示测量仪表的下限,am表示测量仪表的上限,ax表示标度变换后的测量值, n0表示仪表下限所对应的数字量,nm表示仪表上限所对应的数字量,nx表示测量值对应的数字量,其中,a0、am、n0和nm对于某一具体的参数来说为常数,不同的参数有不同的值。

2)非线性标度变换:

从模拟量输入通道得到的有关过程参数的数字信号,与该信号所代表的物理量不一定成线性关系,则其标度变换公式可以根据具体问题进行分析。

步骤4:按照需要对数据进行统计;

步骤5:将处理后的数据映射为图形的属性,其中,所谓图形的属性可以包括:位置、大小、形状等;

在该步骤中即可以根据上述的数据到图表的转换方法中的预定语法规则进行转换,从而实现将数据映射为图形的属性,在实现的时候,可以按照以下代码进行代码转换,其中,link代表关系图:

link().position(a+b);//一维坐标系的弧长链接图

coord(‘polar’);//声明极坐标

link().position((a+b)*c);//和弦图

link().position(a+b+c+d).shape(‘paralle’);//平行坐标

link().position((a+b+c+d)*w).shape(‘paralle’);//桑基图。

步骤6:进行坐标换算、渲染等操作,形成最终的关系图。

在上例中,从图形语法层次上,扩展了现有图形语法生成复杂图形的能力,从语法层面上,结合代数运算中的加乘法,提供一套快速生成关系图的方法,简化了生成关系图的语法和步骤,关注于数据属性到图形上的映射,使得用户可以更好地理解数据是如何映射到图形空间的。另外,使用的代码量比较少,因此维护起来更为简单。

基于同一发明构思,本发明实施例中还提供了一种数据到图表的转换装置,如下面的实施例所述。由于数据到图表的转换装置解决问题的原理与数据到图表的转换方法相似,因此数据到图表的转换装置的实施可以参见数据到图表的转换方法的实施,重复之处不再赘述。以下所使用的,术语“单元”或者“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。图11是本发明实施例的数据到图表的转换装置的一种结构框图,如图11所示可以包括:获取模块1101、语句生成模块1102和解析模块1103,下面对该结构进行说明。

获取模块1101,可以用于获取待转换数据集;

语句生成模块1102,可以用于根据预定语法规则生成所述待转换数据集中各个数据与图表画布位置之间的对应关系,以及所述各个数据之间的连接关系的表征语句;

解析模块1103,可以用于对所述表征语句进行解析,得到所述待转换数据集所对应的图表画布。

如图12所示是解析模块1103的一种结构示意图,可以包括:判断单元1201,可以用于确定坐标系是否为极坐标系;第一解析单元1202,可以用于在确定是极坐标系的情况下,对所述表征语句进行解析,得到所述待转换数据集所对应的和弦图;第二解析单元1203,可以用于在确定不是极坐标系的情况下,对所述表征语句进行解析,得到所述待转换数据集所对应的平行坐标图或桑基图。

为了使得所生成的图形语法更为简单易懂,上述的预定语法规则可以是根据代数运算生成的,例如,可以有以下几种:

1)通过如下语句表示两个变量集之间的横向连接关系:

position(s*t),其中,s表示第一变量集,t表示第二变量集,s*t表示横轴为变量集s,纵轴为变量集t;

2)通过如下语句表示两个数据之间的连接关系:

position(a+b),其中,a表示第一个数据集,b表示第二个数据集,a+b表示从数据集a到数据集b;

3)通过如下语句表示带权重的数据关系:

position((c+d)*e)=position(c*e1+d*e2)

其中,c表示第一数据集,d表示第二个数据集,e表示权重,c*e1+d*e2表示从数据集c到数据集d,c的权重为e1,d的权重为e2。

上述的数据到图表的转换装置还可以包括:变量提取模块,用于在获取待转换数据集之后,从所述待转换数据集中提取变量;转换模块,用于对提取的变量进行变量间转换,形成变量空间;处理模块,用于对所述变量空间进行归一化处理。从而该数据到图表的转换装置可以在获取待转换数据集之后,对该数据集进行一定的处理。

本申请提供的数据到图表的转换方法和装置,可以利用预定的语法规则生成待转换数据集中各个数据与图表画布位置之间的对应关系,以及所述各个数据之间的连接关系的表征语句,然后通过对表征语句的解析就可以呈现出与该待转换数据集对应的图表画布,从而实现数据集到图表的转换。本申请提供的方法可以有效提高数据集到图表画布的转换效率,且实现起来较为简单。利用本申请实施方案,不仅可以大大提高转换效率,还可以让用户直观地 理解数据到图形空间映射关系。

尽管本申请内容中对预定语法规则的列举了几个例子,但是本申请并不局限于必须是完全标准或者所提及的方式。本申请中各个实施例所涉及的上述描述仅是本申请中的一些实施例中的应用,在某些标准、模型、方法的基础上略加修改后的实施方式也可以实行上述本申请各实施例的方案。当然,在符合本申请上述各实施例的中所述的处理方法步骤的其他无创造性的变形,仍然可以实现相同的申请,在此不再赘述。

虽然本申请提供了如实施例或流程图所述的方法操作步骤,但基于常规或者无创造性的劳动可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的装置或客户端产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境)。

上述实施例阐明的装置或模块,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。为了描述的方便,描述以上装置时以功能分为各种模块分别描述。在实施本申请时可以把各模块的功能在同一个或多个软件和/或硬件中实现。当然,也可以将实现某功能的模块由多个子模块或子单元组合实现。

本申请中所述的方法、装置或模块可以以计算机可读程序代码方式实现控制器按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(applicationspecificintegratedcircuit,asic)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:arc625d、atmelat91sam、microchippic18f26k20以及siliconelabsc8051f320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内部包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。

本申请所述装置中的部分模块可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构、类等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。

通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的硬件的方式来实现。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,也可以通过数据迁移的实施过程中体现出来。该计算机软件产品可以存储在存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,移动终端,服务器,或者网络设备等)执行本申请各个实施例或者实施例的某些部分所述的方法。

本说明书中的各个实施例采用递进的方式描述,各个实施例之间相同或相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。本申请的全部或者部分可用于众多通用或专用的计算机系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、移动通信终端、多处理器系统、基于微处理器的系统、可编程的电子设备、网络pc、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。

虽然通过实施例描绘了本申请,本领域普通技术人员知道,本申请有许多变形和变化而不脱离本申请的精神,希望所附的权利要求包括这些变形和变化而不脱离本申请的精神。

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