Java漏斗画画函数代码 java漏斗画画函数代码大全( 二 )


在本文中 , 我将解释如何使用 Draw2D 编写代码,帮助您以图形的方式形象化您的数据 。我将从一项技术的描述开始,该技术将位于某一范围内的数据值(比如,从 0 到 2048)按比例缩放成另一范围内的等效数据值(例如,从 0 到 100) 。然后,我将举例说明如何绘制出任意个级数的 X-Y 坐标图,每个级数都包含一组数据元素 。在学习了本文中的概念之后,就可以很容易地绘制其他类型的图表,比如饼图和条形图 。
具体的绘图过程
步骤 1:您想绘制什么样的图形?
显然,您想以图形方式描绘来自数据源的数据 。所以,您需要那些您想以图形形式形象化的数据 。为了简便起见,我使用了一个名为 dataGenerator 的简单函数生成的数据 , 而不是从 XML 文件或其他一些数据源读取数据,该函数使用了一个 for(;;) 循环,并以数组列表的形式返回生成的值 。
清单 1. 生成一些数据
private ArrayList dataGenerator() {
double series1[] = new double[5];
for(int i=0; iseries1.length; i++)
series1[i] = (i*10) + 10; // a linear
series containing 10,20,30,40,50
double series2[] = new double[9];
series2[0] = 20; series2[1] = 150; series2[2] = 5;
series2[3] = 90; series2[4] = 35;series2[5] = 20;
series2[6] = 150; series2[7] = 5; series2[8] = 45;
double series3[] = new double[7];
for(int i=0; iseries3.length; i++)
series3[i] = (i*20) + 15;
seriesData.add(series1);
seriesData.add(series2);
seriesData.add(series3);
return seriesData;
}
步骤 2:缩放技术 —— 从给定的数据生成 X 坐标和 Y 坐标
【Java漏斗画画函数代码 java漏斗画画函数代码大全】一些新的术语
FigureCanvas
Draw2D 中的 FigureCanvas 是 SWT Canvas 的一个扩展 。FigureCanvas 可以包含 Draw2D 图形 。
Panel
Panel 是 Draw2D 中的一个通用容器图形 , 它可以包含子图形 。您可以向一个 Panel 图形中添加许多图形 , 然后将这个 Panel 图形提供给 FigureCanvas 。
DirectedGraph
DirectedGraph 是一个 2-D 图形,拥有有限数量的 Node , 每个 Node 都位于一些 Point 中 , 相邻的 Node 是通过 Edges 彼此连接在一起的 。
当您想绘制一架 2-D 飞机上的点时,必须找出每个点的 X 坐标和 Y 坐标 。绘图的奇妙之处在于能够将某一个给定数据值从一个范围按比例缩放到另一个范围中,也就是说,如果给定一组值,如 {10,20,30},那么您应该能够确定 2-D 飞机上具体哪些点(X 坐标和 Y 坐标)表示的是 10、20 和 30 这些数据值 。
绘制总是在按照某一个限定缩放比例进行的 。换句话说,在同一限定区域内,可以绘制任意数量的点 。因为该区域是固定的,所以您总是可以找到 X 坐标轴的跨度(长度)和 Y 坐标轴的跨度(高度) 。X 坐标轴和 Y 坐标轴的跨度只是等式的一部分 。另一部分是找出数据值的范围,并根据每个数据值在新范围内的等效值来计算这些值的坐标 。
计算 X 坐标和 Y 坐标
X 坐标:X 坐标是某一个点距离原点的水平距离 。计算元素的数量,然后将 X 坐标轴的跨度分成 n 个区段,其中,n 是给定集合中的元素的数量,通过这种方式 , 可以计算某一集合中的所有点的横向坐标 。用这种分割方法可以获得每个区段的长度 。集合中的第一个点位于等于区段长度的第一段距离内 。后续的每个点则位于区段长度加上原点到前一个点的距离的那一段距离内 。
例如 , 给出一个集合 {10,20,30,40},您立刻就可以知道要绘制 4 个点 , 因为集合中包含 4 个元素 。所以 , 应该将 X 坐标轴的跨度分成 4 个相等的区段,每个区段的长度 = 跨度/4 。因此,如果 X 坐标轴的跨度是 800,那么区段的长度将是 800/4,即 200 。第一个元素(10)的 X 坐标将是 200,第二个元素(20)的 X 坐标将是 400,依此类推 。

推荐阅读