一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于Java的echarts图表动态生成方法及系统与流程

2021-11-03 20:42:00 来源:中国专利 TAG:

一种基于java的echarts图表动态生成方法及系统
技术领域
1.本技术涉及可视化图表技术领域,特别是涉及一种基于java的echarts图表动态生成方法及系统。


背景技术:

2.echarts是一款应用领域比较广泛的可视化图表库,其支持多种图表,包含大量样式的配置项。在生产开发过程中,通常需要改变部分图表的展现形式、配置项等,从而满足用户需求。因此,根据所获取到的用户需求,采用何种办法修改图表的类型和样式,最终实现图表的准确更新,是个重要的技术问题。
3.目前修改图表展现形式的方法,通常是:修改前端项目中对应组件的参数值,再将该参数值重新打包部署到生成环境中,从而完成本次修改的上线。同时,如果每个图表都有自己默认的样式和配置时,将其对应的文件逐一修改,且每次修改都需要采用投产的方式进行验证。
4.然而,目前修改图表展现形式的方法中,由于每次修改都需要修改前端项目的参数值,且对其进行打包,且每次修改都要走投产的方式进行验证,这些繁琐的修改步骤,极大地限制了图表样式的更新频率,且在修改代码、打包部署的过程中容易出现差错,从而造成图表缺陷,增加投产次数,容易产生风险。因此,目前修改图表类型或样式的方法,导致图表样式的更新迭代效率较低。


技术实现要素:

5.本技术提供了一种基于java的echarts图表动态生成方法及系统,以解决现有技术中修改图表展现形式的方法使得图表样式的更新迭代效率较低的问题。
6.为了解决上述技术问题,本技术实施例公开了如下技术方案:
7.一种基于java的echarts图表动态生成方法,所述方法包括:
8.对待生成的echarts图表定义相应的java类,所述java类中包含:待生成echarts图表中所包含的指标数量及类型;
9.获取与待生成echarts图表相匹配的样式信息和数据格式;
10.根据java反射机制,利用所述样式信息和数据格式,确定所述待生成echarts图表所对应的java类;
11.判断所述java类中是否已存在待生成echarts图表所需的数据查询逻辑;
12.如果是,利用所述待生成echarts图表所对应的java类,根据所述数据查询逻辑生成option数据;
13.根据所述option数据绘制相应的echarts图表。
14.可选地,所述获取与待生成echarts图表相匹配的样式信息和数据格式,包括:
15.根据所获取的命令,查询与待生成echarts图表相关的配置信息,所述相关的配置信息包括:默认样式信息、默认数据处理类以及图表来源信息,所述图表来源信息包括:图
表为单图以及图表为组合图中的一部分;
16.将所述默认样式信息替换成与待生成echarts图表相匹配的样式信息;
17.根据所述默认数据处理类,将与待生成echarts图表相匹配的数据组装成相应的数据格式。
18.可选地,所述根据所述默认数据处理类,将与待生成echarts图表相匹配的数据组装成相应的数据格式,包括:
19.根据所述默认数据处理类,查询到与待生成echarts图表相匹配的数据;
20.将与待生成echarts图表相匹配的数据按照图表要求,组装成相应的数据格式。
21.可选地,所述待生成echarts图表的类型包括:单柱线柱形图、多线折线图和饼图。
22.可选地,当所述java类中不存在待生成echarts图表所需的数据查询逻辑时,根据预设的数据查询方式对java类中中的原始数据查询逻辑进行修改,直到满足数据要求,生成待生成echarts图表所需的数据查询逻辑。
23.可选地,根据所述option数据绘制相应的echarts图表之后,所述方法还包括:
24.判断所述echarts图表所占用的内存是否超过设定的内存阈值;
25.如果是,将所述echarts图表替换为对应的图片。
26.可选地,将所述echarts图表替换为对应的图片的方法,具体为:
27.根据所述echarts图表,利用phantomjs工具生成对应的图片;
28.将所述图片存储至数据库中。
29.一种基于java的echarts图表动态生成系统,所述系统包括:
30.图表自定义模块,用于对待生成的echarts图表定义相应的java类,所述java类中包含:待生成echarts图表中所包含的指标数量及类型;
31.样式信息和数据格式获取模块,用于获取与待生成echarts图表相匹配的样式信息和数据格式;
32.java类确定模块,用于根据java反射机制,利用所述样式信息和数据格式,确定所述待生成echarts图表所对应的java类;
33.判断模块,用于判断所述java类中是否已存在待生成echarts图表所需的数据查询逻辑;
34.图表自定义模块,还用于当java类中已存在待生成echarts图表所需的数据查询逻辑时,利用所述待生成echarts图表所对应的java类,根据所述数据查询逻辑生成option数据;
35.图表绘制模块,用于根据所述option数据绘制相应的echarts图表;
36.配置项模块,用于以java注解的形式,存储echarts图表所支持的所有配置信息。
37.可选地,所述样式信息和数据格式获取模块包括:
38.数据查询单元,用于根据所获取的命令,查询与待生成echarts图表相关的配置信息,所述相关的配置信息包括:默认样式信息、默认数据处理类以及图表来源信息,所述图表来源信息包括:图表为单图以及图表为组合图中的一部分;
39.样式组装单元,用于将所述默认样式信息替换成与待生成echarts图表相匹配的样式信息;
40.数据组装单元,用于根据所述默认数据处理类,将与待生成echarts图表相匹配的
数据组装成相应的数据格式。
41.可选地,所述系统中还包括:
42.图片生成模块,用于当所述echarts图表所占用的内存超过设定的内存阈值时,将所述echarts图表替换为对应的图片
43.本技术的实施例提供的技术方案可以包括以下有益效果:
44.本技术提供一种基于java的echarts图表动态生成方法,该方法首先对待生成的echarts图表定义相应的java类,其次获取与待生成echarts图表相匹配的样式信息和数据格式,然后根据java反射机制,利用所述样式信息和数据格式,确定待生成echarts图表所对应的java类,再判断java类中是否已存在待生成echarts图表所需的数据查询逻辑,只有当java类中已存在待生成echarts图表所需的数据查询逻辑时,利用待生成echarts图表所对应的java类,根据数据查询逻辑生成option数据,最后根据该option数据绘制相应的echarts图表。
45.相比于现有技术,本实施例中的方法不需要直接修改页面代码,而是利用java反射机制,通过读取数据库样式数据和指标数据处理信息,获取与待生成echarts图表相匹配的样式信息和数据格式,反射成相应的java类,然后再通过java类中的数据查询逻辑生成待生成echarts图表所需的属性值和数据,也就是option数据,最后根据option数据绘制相应的echarts图表。因此,本实施例中的方法通过动态配置数据即可改变图表生成的样式,从而避免数据的重新打包以及每次修改所导致的重新投产,大大减少投产次数,进而有效提高图表样式的更新迭代效率。而且由于减少重新投产次数,还能够有效降低线上流程带来的风险,有利于节约成本,提高效率。
46.针对页面中包含过多图表走出浏览器内存占用过大的情况,本实施例还包括:判断echarts图表所占用的内存是否超过设定的内存阈值;如果超过内存阈值,将echarts图表替换为对应的图片,从而大大减小内存资源的占用,有利于节省资源,还有利于提高图表样式的更新迭代效率。
47.本技术还提供一种基于java的echarts图表动态生成系统。该系统主要包括:图表自定义模块、样式信息和数据格式获取模块、java类确定模块、判断模块、图表绘制模块和配置项模块。通过配置项模块存储echarts图表所支持的所有配置信息,以备随时调用。通过图表自定义模块首先对待生成echarts图表定义相应的java类,然后利用样式信息和数据格式获取模块获取到与待生成图表相匹配的样式信息和数据格式,再利用java类确定模块利用java反射机制确定待生成图表所对应的java类,通过判断模块判定java类中已存在待生成echarts图表所需的数据查询逻辑后,再启用图表自定义模块根据数据查询逻辑生成option数据,最后通过图表绘制模块绘制相应的echarts图表,从而实现图表生成样式的灵活改变。样式信息和数据格式获取模块、java类确定模块以及图表自定义模块的设置,使得该系统充分利用java反射机制,通过动态配置数据,完成对配置的修改,从而灵活改变图表生成样式,无需修改页面代码,从而避免项目打包以及多次走投产等流程,从而大大提高图表样式的更新迭代效率,有利于提高用户体验。
48.应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本技术。
附图说明
49.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本技术的实施例,并与说明书一起用于解释本技术的原理。
50.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
51.图1为本技术实施例所提供的一种基于java的echarts图表动态生成方法的流程示意图;
52.图2为本技术实施例所提供的一种基于java的echarts图表动态生成系统的结构示意图;
53.图3为本技术实施例中基于java的echarts图表动态生成系统的工作原理示意图。
具体实施方式
54.为了使本技术领域的人员更好地理解本技术中的技术方案,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本技术保护的范围。
55.为了更好地理解本技术,下面结合附图来详细解释本技术的实施方式。
56.参见图1,图1为本技术实施例所提供的一种基于java的echarts图表动态生成方法的流程示意图。由图1可知,本实施例中基于java的echarts图表动态生成方法,主要包括如下步骤:
57.s1:对待生成的echarts图表定义相应的java类。
58.本实施例中待生成echarts图表的类型包括:单柱线柱形图、多线折线图和饼图等。java类中包含:待生成echarts图表中所包含的指标数量及类型。以柱状图为例,该java类存储的为柱状图表示了多少指标,例如销售额指标或者成本指标等,这些指标的展现形式为柱状图,而不是饼图或者折线图等其他样式。
59.java是一门面向对象编程语言,不仅吸收了c 语言的各种优点,还摒弃了c 里难以理解的多继承、指针等概念。
60.s2:获取与待生成echarts图表相匹配的样式信息和数据格式。
61.具体地,步骤s2包括如下过程:
62.s21:根据所获取的命令,查询与待生成echarts图表相关的配置信息。
63.其中,相关的配置信息包括:默认样式信息、默认数据处理类以及图表来源信息,图表来源信息包括:图表为单图以及图表为组合图中的一部分。
64.s22:将默认样式信息替换成与待生成echarts图表相匹配的样式信息。
65.s23:根据默认数据处理类,将与待生成echarts图表相匹配的数据组装成相应的数据格式。
66.其中,步骤s23又包括如下过程:
67.s231:根据默认数据处理类,查询到与待生成echarts图表相匹配的数据;
68.s232:将与待生成echarts图表相匹配的数据按照图表要求,组装成相应的数据格式。
69.由以上步骤s21

s23可知,在获取与待生成echarts图表相匹配的样式信息和数据格式时,首先从所有配置信息中,查询到与生成图表相关的配置信息,这些相关配置信息中的样式信息为默认样式信息,或者是上一次数据的样式信息,数据处理类为默认数据处理类,为实现图表样式改变,需要执行步骤s22和s23,替换成与待生成echarts图表相匹配的样式信息以及组装成相应的数据格式。当组装数据格式时,首先查询到与待生成echarts图表相匹配的数据,然后将该数据按照图表要求,组装成相应数据格式的数据。
70.通过步骤s21实现的是数据查询功能,例如:为生成某公司当年销售额的柱状图,通过步骤s21查询当年每个月的销售额数据、柱状图样式信息、柱状图数据处理类等,通过步骤s22,根据步骤s21查询出的柱状图样式数据,生成最后用于生成图表的样式配置信息,通过步骤s23,根据步骤s21查询出的销售额数据,组装成图表所需要的数据格式。
71.继续参见图1可知,获取与待生成echarts图表相匹配的样式信息和数据格式之后,执行步骤s3:根据java反射机制,利用样式信息和数据格式,确定待生成echarts图表所对应的java类。
72.s4:判断java类中是否已存在待生成echarts图表所需的数据查询逻辑。
73.如果java类中已存在待生成echarts图表所需的数据查询逻辑,执行步骤s6:利用待生成echarts图表所对应的java类,根据数据查询逻辑生成option数据。
74.option是echarts图表绘制时需要的样式、数据等配置信息。
75.如果java类中不存在待生成echarts图表所需的数据查询逻辑,则执行步骤s5:根据预设的数据查询方式对java类中中的原始数据查询逻辑进行修改,直到满足数据要求,生成待生成echarts图表所需的数据查询逻辑。也就是,当java类中不存在待生成echarts图表所需的数据查询逻辑时,需要根据待生成echarts图表所要求的数据查询逻辑进行相应的完善。然后再执行步骤s6。
76.根据数据查询逻辑生成option数据之后,执行步骤s7:根据option数据绘制相应的echarts图表。
77.进一步地,本实施例中还包括步骤s8:判断echarts图表所占用的内存是否超过设定的内存阈值;
78.如果echarts图表所占用的内存超过设定的内存阈值,执行步骤s9:将echarts图表替换为对应的图片。
79.内存阈值可以根据不用的应用场景和对系统运行的影响情况而定。
80.如果echarts图表所占用的内存没有超过设定的内存阈值,继续保留echarts图表格式即可。
81.当出现页面中包含过多图表造成浏览器内存占用过大时,通过步骤s8和s9,将内存较大的echarts图表替换为对应的图片,能够有效减少内存资源的占用,避免系统运行缓慢的情况,既有利于节省系统内存资源,又能够有效提高数据处理效率,从而提高图表迭代效率。
82.具体地,本实施例中将echarts图表替换为对应的图片的方法,具体包括:
83.s91:根据echarts图表,利用phantomjs工具生成对应的图片。
84.s92:将图片存储至数据库中。
85.phantomjs是一无界面的浏览器,是一个基于webkit的javascript api。它使用qtwebkit作为核心浏览器的功能,使用webkit来编译解释执行javascript代码。
86.本实施例利用phantomjs工具能够实现图片的生成和存储,当用户需要使用echarts图表对应的图片时,可以通过配置图片源路径信息获取到该图片。
87.实施例二
88.在图1所示实施例的基础上参见图2,图2为本技术实施例所提供的一种基于java的echarts图表动态生成系统的结构示意图。由图2可知,本实施例中基于java的echarts图表动态生成系统,主要包括:图表自定义模块、样式信息和数据格式获取模块、java类确定模块、判断模块、图表绘制模块和配置项模块。
89.其中,图表自定义模块,用于对待生成的echarts图表定义相应的java类,java类中包含:待生成echarts图表中所包含的指标数量及类型;样式信息和数据格式获取模块,用于获取与待生成echarts图表相匹配的样式信息和数据格式;java类确定模块,用于根据java反射机制,利用样式信息和数据格式,确定待生成echarts图表所对应的java类;判断模块,用于判断java类中是否已存在待生成echarts图表所需的数据查询逻辑;图表自定义模块,还用于当java类中已存在待生成echarts图表所需的数据查询逻辑时,利用待生成echarts图表所对应的java类,根据数据查询逻辑生成option数据;图表绘制模块,用于根据option数据绘制相应的echarts图表;配置项模块,用于以java注解的形式,存储echarts图表所支持的所有配置信息。
90.进一步地,样式信息和数据格式获取模块包括:数据查询单元、样式组装单元和数据组装单元。其中,数据查询单元,用于根据所获取的命令,查询与待生成echarts图表相关的配置信息,相关的配置信息包括:默认样式信息、默认数据处理类以及图表来源信息,图表来源信息包括:图表为单图以及图表为组合图中的一部分;样式组装单元,用于将默认样式信息替换成与待生成echarts图表相匹配的样式信息;数据组装单元,用于根据默认数据处理类,将与待生成echarts图表相匹配的数据组装成相应的数据格式。
91.数据组装单元又包括:查询子单元和数据格式组装子单元。其中,查询子单元,用于根据默认数据处理类,查询到与待生成echarts图表相匹配的数据;数据格式组装子单元,用于将与待生成echarts图表相匹配的数据按照图表要求,组装成相应的数据格式。
92.进一步地,该系统中还包括有图片生成模块,用于当echarts图表所占用的内存超过设定的内存阈值时,将echarts图表替换为对应的图片。具体地,图片生成模块可以采用phantomjs工具,该phantomjs工具能够实现图片的生成和存储,从而便于后续调取使用,有利于提高图表更新迭代效率。
93.本技术实施例中基于java的echarts图表动态生成系统的工作原理示意图,可以参见图3所示。
94.该实施例中未详细描述的部分,可以参见图1所示的实施例,两个实施例之间可以互相参照,在此不再赘述。
95.以上所述仅是本技术的具体实施方式,使本领域技术人员能够理解或实现本技术。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本技术的精神或范围的情况下,在其它实施例中实现。因此,本技术
将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献