基于Java的数据可视化研究及应用软件工程课程设计.docx

上传人:b****7 文档编号:10411099 上传时间:2023-02-11 格式:DOCX 页数:30 大小:1.11MB
下载 相关 举报
基于Java的数据可视化研究及应用软件工程课程设计.docx_第1页
第1页 / 共30页
基于Java的数据可视化研究及应用软件工程课程设计.docx_第2页
第2页 / 共30页
基于Java的数据可视化研究及应用软件工程课程设计.docx_第3页
第3页 / 共30页
基于Java的数据可视化研究及应用软件工程课程设计.docx_第4页
第4页 / 共30页
基于Java的数据可视化研究及应用软件工程课程设计.docx_第5页
第5页 / 共30页
点击查看更多>>
下载资源
资源描述

基于Java的数据可视化研究及应用软件工程课程设计.docx

《基于Java的数据可视化研究及应用软件工程课程设计.docx》由会员分享,可在线阅读,更多相关《基于Java的数据可视化研究及应用软件工程课程设计.docx(30页珍藏版)》请在冰豆网上搜索。

基于Java的数据可视化研究及应用软件工程课程设计.docx

基于Java的数据可视化研究及应用软件工程课程设计

《基于Java的数据可视化研究及应用》

软件工程课程设计

第一章绪论1

1.1数据可视化的重要性1.

1.2国内外该领域的基本状况1.

1.3数据可视化的发展前景2.

1.4本文的研究背景与内容2.

第二章数据可视化的表现类型3

2.1统计数据可视化概述3.

2.2常见的可视化图表类型3

2.2.1柱形图、条形图及其变形3

2.2.2折线图及其变形6.

2.2.3散点图及其变形8.

2.2.4饼图、圆环图及其变形1.0

第三章数据可视化的实现步骤和方法12

3.1统计数据可视化的实现步骤12

3.2可视化图表的绘制12

3.2.1图表的组成元素12

3.2.2图表基本元素的设计实现1.3

3.2.3利用开发包绘制图表1.4

3.2.4禾I」用JfreeChart绘制图表1.6

第四章基于Java的数据可视化及应用21

4.1教育教学评价系统的数据可视化问题21

4.2对使用图表类型的分析22

4.3绘图步骤22

4.3.1安装配置JfreeChart.22

4.3.2编写JavaBean23

4.4系统中的统计图24

第五章结束语27

参考文献错误!

未定义书签。

致谢错误!

未定义书签。

第一章绪论

1.1数据可视化的重要性

随着计算机技术、网络技术的发展,各种计算机应用系统开始出现,各行各业积累了大量的数据。

互联网的出现,进一步提供了海量的数据资源,但是单纯的原始数据能够展示的信息过于零乱,在原始数据基础上分析整理所得到的统计数据才更有价值。

然而统计数据虽然精确,但有着不直观的缺点,人们仅仅根据统计数据思考得到的信息仍然有限。

人脑具有非常复杂的模式识别处理能力,人们从可视化图像中吸取信息比远从文本或表格形式中吸取信息更快、更有效。

为了提供更强大的信息,这就需要我们把统计数据进行可视化。

所谓“可视化”,就是将数据转换为人们容易理解的图形图像形式。

数据可视化可以通过使用不同图形、不同颜色、不同实体来强化需要表达的内容。

在比较数据的差异、图案、趋势和数据间关系时,可视化的图表有着不可替代的优越性。

数据可视化技术凭借计算机的巨大处理能力,和计算机图形学基本算法把巨大数量的数据转换为静态或动态图形呈现出来,使隐含规律可见,为人们理解分析数据、形成概念和找出规律提供了强有力的手段。

由于可视化技术充分利用了人对于色彩和空间的敏锐的感知能力,它不仅可以用于数据的理解,而且可以用于空间知识的呈现,在空间信息和知识的发现过程中发挥着重要作用。

1.2国内外该领域的基本状况

国际上对数据可视化专题进行了广泛而深入的研究,取得了一些重要进

展。

这些进展和研究成果的展示与交流体现在一些国际研讨会上及其论文集中。

比较有影响的国际会议是电气与电工工程师学会IEEE所组织的两个系列国际研

讨会:

一个在英国伦敦每年七月所举办的“InternationalConferenceonInformationVisualization",另一个是每年10月在美国召开的“IEEESymposiumonInformationVisualization这两个系列的国际研讨会集中体

现了当代该领域的研究水平。

在我国,数据可视化已被广泛应用于科学计算、医

学虚拟模拟、及各种教学和地理信息等系统。

[4]

1.3数据可视化的发展前景

近几年来,随着数据可视化技术从研究领域逐步走进了商业应用领域,这项技术有着越来越广阔的发展前景。

首先,可视化技术必须同数据挖掘有更紧密的联系。

数据挖掘和数据分析工具本身并不包含可视化技术,目前的数据可视化技术中的数据挖掘和分析功能对数据挖掘的公式和算法支持还不能完全支持,对可视化的数据反映出的结构和特点难以把握和证实。

所以研究数据可视化技术和数据挖掘技术之间更加紧密的结合是提高数据可视化功能的一个重要方面。

[6]

其次,需要提高数据可视化技术的动态交互能力。

目前的可视化在本质上是静态的。

数据被一次读取然后显示出来。

用户很难和可视化图形进行交互。

动态可视化允许用户对数据可视化进行旋转、缩放和筛选等操作。

动态可视化应允许用户通过在图上选择特定区域内的数据点,将得到的数据形成子集,对这个数据子集存储和分析。

动态可视化还可以延伸到对不断变化的数据进行可视化。

1.4本文的研究背景与内容

本文主要研究统计数据可视化的方法与实现技术,具大背景如前文所述,这一研究的项目开发背景是对高校教育教学在线评价系统中涉及的统计分析。

该系统中涉及对任课教师评价、课程设置评价、教学管理评价、教学环境评价、学生评价等五个方面的数据统计,使用了多张饼图、折线图、柱状图将上述统计结果用可视化方法表现出来。

使该系统的各种不同身份用户都能根据各自需要快速形象的查看到自己需要的统计信息,最终达到提高教育教学质量的目的。

主要的研究内容包括:

本文将首先探讨常见的统计数据可视化的几大类表现形式,其各自的特点、应用场合,以及如何对分析所得到的可视化图表。

然后描述用包括Java在内的编程语言实现几种基本可视化图表,比较各种方法之间的异同。

最后将以我参与开发的教育教学在线评价系统为例,探讨在具体项目中如

何分析确定使用哪种可视化图表,如何用Java语言实现所需图表的显小。

第二章数据可视化的表现类型

2.1统计数据可视化概述

一般地,统计数据可视化是指借助于计算机软件,采用各种媒体素材和设计手段,将被感知、被认知、被想象、被推理、被综合及被抽象了的对象属性及其变化发展的形式和过程,通过形象化、模拟化、仿真化、现实化的技术手段,在信息查询、浏览和表现中分地展示对象内在的属性特征和对象间的相关联系。

数据可视化可以在准备好的数据集上创建二维和三维的图形,让数据分析人

员和决策制定者更方便的分享利用这些图形。

数据可视化的目的不在于把统计数据用图表形式呈现出来,而是要通过观察并且和二维、三维的图形进行交互,借助图表分析得出结论,从数据集中发现有用的信息,指导人们发现规律、利用规律。

[2]

2.2常见的可视化图表类型

最常用的一些可视化图表有:

柱形图、条形图、折线图、雷达图、股价图、饼图、圆环图、散点图、气泡图、折线图、帕雷拖图、饼图、表面图、面积图等。

下面分别描述各种图表的特点、应用场合,以及如何分析各种图表。

2.2.1柱形图、条形图及其变形

2.2.1.1柱形图、条形图

柱形图和条形图都是在x-y二维坐标系中比较数据的值。

柱形图和条形图本质上是相同的,只是x轴和y轴互换了位置。

柱形图是沿着上下方向垂直延伸的图形,条形图是延水平方向延伸的图形。

但两种图都将数据沿x轴的标签分组,

使各组数据通过图形更易于比较和对照。

柱形图和条形图绘制方法都是先在坐标系中画出数据点,然后画出一条与x

轴垂直或平行的柱来表示数据的值。

图2-1柱形图示例图2-2条形图示例

柱形图和条形图比较的是相交于类别轴上的数值大小。

可以用来表示数据的不对称性,比较相交于类别轴上的数值大小。

2.2.1.2分布图和直方图

分布图和直方图是条形图和柱形图的另一类重要变形。

这两种图显示了离散类型的数据在数据集中存在的数目和比例,可以反映数

据的不平衡性。

因此这两种图又被称为频率图。

频率图往往为五种基本模式中的一种:

对称型、双峰型、弧线型、扁平型、异常型。

如果一个频率图有多种模式,往往说明还有其他因素需要进一步考虑和分析。

对称型的频率分布模式通常表示了一种稳定、可预测的过程、结果或者关系。

双峰型预示了一种不稳定的过程、结果或者关系,或者是存在两种或更多条件影响分布的模式,或者存在另一个字段需要同时加以考虑。

对于与此过程相关的业务问题,应该在低点和高点出现的时候调查在过程的各个步骤中作了哪些不同的事情。

弧线型可能表示了一种不稳定的过程、结果或者关系。

扁平型表示了一种不稳定、不可预测的过程、结果或者关系。

也可能表示正在比较的内容基本没有可比性。

如果得到的是一个扁平型,可能需要对正在测量的过程、结果或关系重新进行考察和定义,对数据和绘图的方法进行调整。

异常型可能意味着数据集中存在错误。

如果确认数据准确,对这些独特分布模式的解释往往能显著提高流程的性能或提供例外案例。

图2-3对称型分布的频率图图2-4双峰型分布的频率图

图2-5弧线型分布的频率图图2-6扁平型分布的频率图

 

图2-7异常型分布的频率图

2.2.1.3圆柱图、棱锥图、圆锥图

这三种图的形状如图2-8,2-9,2-10所示,是柱形图的变形,与柱形图相比,只是形状不同,增强了立体感,在使用和分析上是一样的。

图2-10圆锥图示例

2.2.2折线图及其变形

2.2.2.1折线图

折线图通常显示一个数据与另一个数据在x-y二维坐标系中的对比关系,邻近的各数据点之间用线段连接。

x轴的数据值可以是离散的,也可以是连续的。

但y轴的数据值必须是连续的。

折线图显示的是随时间或类别而变化的趋势线。

主要用来分析和查找基于时间的趋势和模式。

通过在图形中指出发生变化的点,可以帮助识别出导致变化的原因,确定不同变化的影响程度,确定是否需要做一些新的变化,一般在评估长期模式时用。

利用折线图进行分析时,应持慎重态度。

例如心电图是折线图的一种,使用者必须有相当丰富的专业知识才能作出正确的判断。

折线图的准确程度和图中数据点个数有关,选择的数据点越多,折线图越准确。

时间度量越短,需要的数据点就越多。

另外可以通过在折线图中增加中位数线的方式增强对折线图的解释。

中位数就是最接近中心的数据点。

相对于中位数线的小幅度变化是正常的,而快速上下移动的变化就需要注意了。

通过这样考察各点与中位线的相对关系,可以更准确的分析那些条件影响了变化。

 

2.2.2.2雷达图

雷达图是折线图的一种变种,用360度坐标系代替x-y坐标系,因为形似于雷达屏幕上的扫描显示而得名,又因为这种图也像蜘蛛网,所以又称“蛛网图”。

雷达图的绘制方法如下:

若有n个指标,则应将360度划分为n等分,每个等分位置上化一条半径,并适当按数据的全距和图形的范围划分刻度,构成n个数轴。

对每个样品来说,分别将n个数值点到相应轴的位置上,连接起来,就形成了雷达图。

[3]

图2-13雷达图示例

图2-13中绘制的雷达图是某学生一次期末考试的各科成绩,从图中可以看出该生有偏科现象,成绩分布不均衡,化学明显偏低。

雷达图可以显示相对于中心点的数值变化。

通常用于评估全部数据中存在的

变化趋势,通过观察螺旋形是否光滑还是具有尖刺来判断数据的波动情况。

还可用于简单的大小数量比较和描述,另外还能用于样品分类,形状相似的n边形所代表的样本点应该归于一类。

使用雷达图应该注意两点,一是当变量个数不能太多,如果变量多余七个,图就不太清晰明了。

二是由于代表变量的半径次序是人为规定的,所以样本点的多边图的形状不固定。

因此图例对于图的显示至关重要,需要标明各变量位置。

2.2.2.3股价图

在股市中,我们常常看到各种股价图,用来表示一段时间内股票的走势、成交量等指标。

股价图的本质也是折线图,这种图描绘了一个数据集中几个连续字段的值,通过把这些点用线段连接起来使人从中获得对这些点之间关系的认识。

股价图有以下几种:

盘高-盘低-收盘图、开盘-盘高-盘低-收盘图、成交量一盘高—盘低—收盘图、成交量—开盘一盘高—盘低—收盘图,其中后三项都是第一种图的变种,在第一种图的基础上发展得到的。

绘制股价图需要注意的是提供的各项数据系列必须按固定次序排列。

2.2.3散点图及其变形

2.2.3.1散点图

散点图是描述方法最简单的图,仅根据数值描绘出相应的数据点儿不添加任何线段或者条状体。

散点图用于比较成对的数据值。

使用散点图可以避免用其他图造成的心理暗示,例如条形图会暗示一种比较关系,折线图暗示一种连续性,饼图暗示所占比例等。

散点图能够将数据集中的每一个数据映射成二维或三维坐标系中的图形实体。

用来评估字段间存在的因果关系。

需要注意的是,散点图只能够这种相关性,但是不能对这种关系进行验证,只是提供一些可能的方法作进一步的分析。

散点图有六种基本模式:

无、递增型、递减型、阈值型、曲线型、聚类型。

如果散点图中不存在任何模式,表示两个字段之间不存在任何关系。

图中选用的

数据点越多,图形的准确律越高。

递增关系,是从左下延伸到右上方,表示字段间关系非常强。

递减关系则恰好相反,从左上方倾斜到右下方,表示二者之间存在很强的负相关性。

阈值型中的点会形成一个类似字母“L”或者“J”的图形,这种表示原因字段的值达到某个阈值时,才会对结果字段产生影响。

曲线关系表示在某个关键点之前,原因和结果是正向相关的,接着因果字段又呈现一种反向相关的关系。

聚类型的点会形成一些群体或者聚类,表示原因和结果有相似关系。

2.2.3.2气泡图

气泡图是散点图的变种,比较成组的三个数值,比散点图多一个用来映射气

图2-20气泡图示例

图2-20所示的气泡图是根据表2-1中数据绘制的。

表2-1中每一行对应一个气泡,第一列对应气泡图的横坐标,第二列对应纵坐标,第三列对应气泡的大小。

气泡图可以用来分析指标字段和数据集中其它字段之间的因果关系,分析是

否发现了某种关系,这种关系的强弱程度,分析各种因素和条件对于流程和业务问题的不同影响。

2.2.4饼图、圆环图及其变形

2.2.4.1饼图

饼图显示各部分数据占总份额的分布信息。

各数据的种类作为饼图中每个部分的标签,数据值在每个种类上分组汇总,形成分布信息。

饼图显示的是数据占全体的百分比。

需要注意的是,饼图中不要有太多数据,否则会显得混乱。

在每个扇形块和图形背景的颜色的使用上也要注意。

对于黑白图,扇形块实体应该尽量避免光亮的颜色。

尽量只使用白色作为背景,否则影响视觉效果。

图2-21饼图示例

2.2.4.2圆环图

圆环图是饼图的一个变种。

圆环图能够同时比较多个连续字段的值的分布。

可以在同一张图中显示多张饼图信息,便于体现同一指标体系中几个系列之间的分布情况对比。

图2-22圆环图示例

第三章数据可视化的实现步骤和方法

3.1统计数据可视化的实现步骤

统计数据的可视化可分为四个主要步骤:

数据预处理,数据的映射,图形的绘制和图形的显示。

[5]

数据预处理主要指原始数据预处理及存储。

原始数据主要来源于数据库数据的调用。

很多时候从数据库读出的数据不能直接使用,需要对其格式进行转化。

数据映射是完成将数值数据转变成几何数据的过程,其实质上完成的是数据建模功能,是可视化技术的重要步骤。

图形的绘制将完成几何数据转换成图像的过程,此时需要考虑用户对图形表示的需要,不能把图形模型建得过于简单,也不能过于复杂。

图形的显示是将绘制模块生成的图像数据,按用户指定的要求进行输出,如生成JPEG5:

件或者PNCS形文件。

3.2可视化图表的绘制

3.2.1图表的组成元素

首先看一下图表的主要元素:

每种图表都是由横坐标轴,纵坐标轴,还有不同的绘图形状三部分组成。

图表区(Chart):

包含所有其它的图表元素。

要绘制一个图表,需要有宽度和高度参数。

坐标轴(Axis):

提供绘图形状的坐标参考。

一个图表中通常有一个垂直和一个水平坐标轴。

有些图中还会有网格线,网格线是以坐标轴的刻度为参考,贯穿整个绘图区。

网格线同坐标轴一样也可分为水平和垂直网格线。

坐标轴同样有宽度高度,还有位置参数。

所有的绘图数据的坐标都要转化成适当的屏幕坐标,因此需要有比例尺。

比例尺负责完成实际坐标值到屏幕坐标值以及屏幕坐标值到实际坐标值的相互转化,与坐标

轴配合使用。

图表形状(Plot):

也是以坐标轴为参考,按一定的比例将数据按相应形状绘制出来。

我们可以往图表里面增加或去掉形状。

一个图表形状应可以表示至少一组以上的数据。

由于图表形状要在图表上描绘数据,它需要有数据序列来记录数据。

3.2.2图表基本元素的设计实现

因为无论使用哪种编程语言绘制图表,都必须定义上面提到的各接口类,下

面以Java语言为例,介绍图表元素设计接口类的设计。

图表元素接口类(ChartWidget):

所有的图表都有一些共同的属性:

位置,宽度和高度,它们还要负责绘制自己本身。

所以我们设计一个ChartWidget

接口,其它所有可视元素都要继承于这个接口。

♦getMin。

•q式M豌)

、式Sc+O

tualVaInefl

图3-1图表基本元素的UML图

坐标轴类(Axis):

坐标轴主要任务是绘制轴及其刻度和刻度值,因为它绘制时是按一定的比例绘制的,所以它需要有一个比例尺将实际坐标值转换值成

屏幕坐标值。

这个转换类就是Scale类,它主要完成实际坐标值到屏幕坐标值以及屏幕坐标值到实际坐标值的相互转化。

由此,Axis与Scale是一对相互依赖的类。

从设计模式的角度来看,Axis是视图(View),负责界面绘制,

Scale就是它的模型(Model),负责提供相应的数据。

图表形状类(Plot):

把负责描述数据的图表形状的类定义为Plot。

Plot应能绘

制多组数据。

专门用类DataSet来描述Plot需要的数据。

在我们讨论的二维图表范围内,DataSet应能提供两组分别代表X和Y坐标的数据。

图表类(Chart):

将上面的元素合成一个完整的图表,即Chart类。

一个Chart

有一个横轴和一个纵轴以及至少一个Plot,并且可以为它添加删除Plot。

3.2.3利用开发包绘制图表

事实上,实际应用中,我们很少按上述步骤从图表的基本元素开始自行绘制图表,而是利用各种现有的控件来实现图表的绘制。

使用控件的好处是具有极

大的灵活性,并且使用起来非常方便,容易可以做出各种复杂、漂亮的图表。

[8][9]

例如在目前广泛应用的B/S结构中,Web统计图表的实现有以下几种方式:

在浏览器端安装使用图表控件如MsChart等。

这样做的缺点是在客户端要安装和注册ActiveX控件,操作较为复杂,并且客户端需要装有Office,否则

无法使用,这就把客户端系统限制在Windows的范围内。

使用JavaApplet显示图形,适用于支持JavaApplet的浏览器。

缺点是开发难度较高,速度慢,需要针对具体的应用要求编制Java绘图程序。

在服务器端使用控件动态生成图形文件,此方法可以适用于任何流行的客户

端浏览器。

比如php中的GD库,这个库支持除.GIF文件之外的绝大多数常见图形文件格式。

TeeChart控件,该控件是32位ActiveX控件,可以在VB、Delphi、MSOffice等多种编程环境下使用,客户端无需安装其他软件,只要使用通用浏览器即可显示统计图形。

基于Java语言的JfreeChart包、PJA(PureJavaAWT)包和Jsci(JavaObjectsforScience包,这两个都是开放源代码的包,同样简单易用。

以上各种控件虽然使用语言各不相同,但是使用方法大同小异。

大致步骤如下:

1)首先创建一个图表对象

2)给图表的各个属性赋值,如图表的标题、长、宽,要绘制什么类型的图表等。

3)建立数据集,给图表中加入数据

4)生成统计图形文件

5)把图形文件放在合适的位置上

根据第二章的介绍可以知道,常用图表主要有散点图、折线图、柱形图、饼图四种,其他图表基本都可以由以上四种图变化组合形成。

而在各种控件中里不

同的图表类型区别主要在于设置数据集,下面以TeeChart控件为例,演示如何在一个asp网页中绘制简单的柱状图。

--引入TeeChart常数-->

--METADATANAME="TeeChartPro4.0ActiveXControl"TYPE="TypeLib”

UUID="{008BBE7B—C096—11D0—B4E3—00A0C901D681}”—〉

<%

--创建图表对象-->

SetTChart1=CreateObject("TeeChart.TChart")

--各项属性赋值,设置图表高度和宽度-->

TChart1.Height=300

TChart1.Width=500

--各项属性赋值,设置图表标题-->

TChart1.Header.Text.Clear

TChart1.Header.Text.Add教师评价结果”

--建立数据集,添加数据-->

TChart1.AddSeries(scBar)

TChart1.Series(0).Clear

TChart1.Series(0).ColorEachPoint=True

--参数依次为数值大小,标签,柱的颜色-->

TChart1.Series(0).Add85,教学态度”,RGB(255,0,0)

TChart1.Series(0).Add69,教学内容”,RGB(255,0,0)

TChart1.Series(0).Add72,教学方法与手段”,RGB(255,0,0)

TChart1.Series(0).Add90,教学建设”,RGB(255,0,0)

TChart1.Series(0).Add57,教学效果”,RGB(255,0,0)

TChart1.Series(0).Add63,课程特色”,RGB(255,0,0)

--生成JPEG文件-->

TChartl.Export.SaveToJPEGFile

server.mappath(/teechart")+"\MyChart.jpg",False,JPEGBestQuality,85,TChart1.Width,TChart1.Height

%>

--把柱状图嵌入网页中-->

3.2.4利用JfreeChart绘制图表

3.2.4.1JfreeChart简介

下面以JfreeChart为例,描述图表的绘制过程。

JfreeChart是开放源代码站点SourceF±的一个JAVA项目,它主要用来绘制各种各样的图表,这些图表包括:

饼图、柱形图(普通柱状图以及堆栈

柱形图)、折线图、区域图、分布图、混合图、以及一些仪表盘等等。

这些不同式样的图表基本上可以满足目前的各种统计图表要求。

使用JfreeChart可以直接

生成PNG、JPG等各种格式的图片。

首先介绍一些JFreeChart创建WEB图表的基本知识。

JFreeChart主要是由三个类构成:

org.jfree.chart.servlet.ChartDeleter

org.jfree.chart.servlet.DisplayChart

org.jfree.chart.servlet.ServletUtilities

通常使用jfreechart创建图片在开发中有可能需要导入以下的类

importorg.jfree.chart.ChartFactory;

importorg.jfree.chart.ChartUtilities;

impor

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 医药卫生 > 药学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1