构建可扩展的Java图表组件 - 编程入门网
构建可扩展的Java图表组件时间:2010-09-13前言 Java语言所具有的面向对象特性,使许多复杂的问题可以分解成相对独立的对象来处理。本文用面向对象的方法,将一个图表组件从分解到如何组合,以及如何进行扩展作了详细的讲解。从简单的折线图到稍复杂的多种形状组合的图表,读者可以学到构建一个可扩展的图表组件是多么的容易。 常见的图表类型 图表具有很直观的视觉效果,可以方便的用来比较数据的差异、图案和趋势等。 从外观上来看,常用到的图表主要有散点图、(折)曲线图、柱状图等。本文主要讨论这几种图形样式。其中这每种图又可以与其它的类型组合产生更多的形式。下面以图例来说明: 先来看散点图: 图1-1 图1-1是一个典型的散点图,它是由一组X值和一组Y值在二维坐标中两两成对描绘而成。一般这种图形反映两组数据的相关性。例如,要考查钢的硬度与淬火温度的关系,假设上图的横轴表示淬火的温度,纵轴表示同时测出的钢的硬度,这时我们可从上图看出一个趋势,即淬火的温度越高,钢的硬度越大。 再来看一个折线图: 图1-2 图1-3 构建可扩展的Java图表组件(2)时间:2010-09-13在图1-2的折线图中,假设横轴表示周一到周日,纵轴表示某商场的日销售额。我们可以看出其临近周末的销售额呈急剧上升趋势,到周日开始回落,而最惨淡的是周四。通常折线图也可以表示成柱状图的形式,如图1-3。 复杂一点的图形 图1-4 图1-5 图1-6 上图三个图形的数据都是同样的,但它们所能够直观表达的意思又不尽相同。诸如此类的图表,形式多种多样,但它们都是由这几种基本图表组合而成的。 接下来的一节,我们来看一下组成图表的基本元素有哪些。 构建可扩展的Java图表组件(3)时间:2010-09-13图表的主要元素 图表的组成 从前面的例子中我们可以看出,每种图表都是由横坐标轴,纵坐标轴,还有不同的绘图形状组成。为了更容易理解,大家看一下下面的分解图: 上图2-1 下图2-2 是一个柱状图和折线图的组合图表,我们将它分解之后(图2-2),可以清晰的看到,它是由图表区、坐标轴、网格线、图表形状等组成: 图表区(Chart):包含所有其它的图表元素。 坐标轴(Axis):提供绘图形状的坐标参考。一个图表中通常有一个垂直和一个水平坐标轴。而网格线是以坐标轴的刻度为参考,贯穿整个绘图区。网格线同坐标轴一样也可分为水平和垂直网格线。 图表形状(Plot):也是以坐标轴为参考,按一定的比例将数据按相应形状绘制出来。 所以,从根本上来说,一个图表的是由三种基本的可视元素组成的:图表区,坐标轴,图表形状。 实现基本图表元素 基本图表元素的特征 我们已经知道了图表的主要组成元素,现在再来看看这些元素有哪些特征。 还是来看一个图: 图2-3 从图上我们可以看出,一个位于屏幕坐标系中的图表具有宽度(Wc)和高度(Hc)以及坐标位置(x,y)。图表中的坐标轴也有高度Ha、宽度Wa及坐标位置(x,y)。同样,图表形状也有相应的高度Hp和宽度Wp和坐标位置。 一个图表通常拥有一个横坐标轴和纵坐标轴。所有的绘图数据的坐标都要转化成适当的屏幕坐标,于是我们需要一个新的元素:比例尺。比例尺应负责完成实际坐标值到屏幕坐标值以及屏幕坐标值到实际坐标值的相互转化。而坐标轴是用来描绘刻度用的,它应与比例尺成对使用。 一个图表还可以有多个图表形状(如图1-6和图2-1),并且我们可以往图表里面增加或移除形状。一个图表形状应可以表示至少一组以上的数据(如图1-5)。由于图表形状要在图表上描绘数据,它需要有一个东西来记录数据,我们将它称之为数据序列。 构建可扩展的Java图表组件(4)时间:2010-09-13基本图表元素的设计实现 我们的目标是用程序来实现一个图表。前 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |