java利用JFreeChart实现各种数据统计图(柱形图_饼图_折线图).doc

上传人:ni****g 文档编号:558047393 上传时间:2023-01-06 格式:DOC 页数:14 大小:359KB
返回 下载 相关 举报
java利用JFreeChart实现各种数据统计图(柱形图_饼图_折线图).doc_第1页
第1页 / 共14页
java利用JFreeChart实现各种数据统计图(柱形图_饼图_折线图).doc_第2页
第2页 / 共14页
java利用JFreeChart实现各种数据统计图(柱形图_饼图_折线图).doc_第3页
第3页 / 共14页
java利用JFreeChart实现各种数据统计图(柱形图_饼图_折线图).doc_第4页
第4页 / 共14页
java利用JFreeChart实现各种数据统计图(柱形图_饼图_折线图).doc_第5页
第5页 / 共14页
点击查看更多>>
资源描述

《java利用JFreeChart实现各种数据统计图(柱形图_饼图_折线图).doc》由会员分享,可在线阅读,更多相关《java利用JFreeChart实现各种数据统计图(柱形图_饼图_折线图).doc(14页珍藏版)》请在金锄头文库上搜索。

1、各类统计程序实现 杨方 531115121 矢量图的生成矢量统计图,即是以矢量图形格式生成、存在和输出的统计图。这种统计图图形要素丰富、交互编辑简单、存储格式多样,打印输出方便,是GIS应用系统最优先选择的统计图。最常用的三类矢量统计图是直方图、曲线图、饼图。矢量统计图的生成,首先要将数据组织为一定的格式,然后进行图形参数的计算和设置,再生成图形,最后进行浏览显示或者保存输出。当然,如果对生成的图形不满意,可以进行参数修改,然后重新生成,最后再显示或保存。1.1 数据组织原始数据可以整理为二维表格的形式,通过文件(*.txt,*.xls,*.doc)导入,也可以将数据整理为二维数组的形式输入。

2、统计图只支持为数值型的数据,包括整型、长整型、浮点型和双精度型等4种数据类型。 1.2 设置参数图形参数可以由用户外部输入,也可以根据数据生成默认参数,分为基本参数、坐标参数、图例参数和数据参数等。(1)基本参数包括图形类型,图形名称,图形范围,点、线、区参数等。(2)坐标轴参数包括是否绘制轴线、刻度线、标注、网格线的标志,刻度数,颜色,名称,比例尺,以及是否绘制包围盒或箭头的标志。(3)图例参数包括是否绘制图例的标志和图例显示位置标志。(4)数据参数包括数据类型,是否绘制数据表的标志,图形单元的宽度或间隔、图形单元的颜色,系列和类别显示标志等。1.3 图形生成生成图形的基本步骤如下:(1)确

3、认存在点、线、面工作区。生成的图形要暂时存入工作区中,然后才能进行显示或保存。点线面工作区可以由外部输入,也可以在软件中生成。(2)确认各项图形参数有效。必须保证每项图形参数都有效,否则软件将出错。对于没有设置有效值的参数,要重新设置默认参数。(3)依次生成图形的各个要素:生成坐标轴、生成图形主体、生成数据表、生成图例和生成图形。在生成统计图的过程中,要随时计算图形的当前范围,以控制后续元素的位置。1.4 图形显示统计图生成后,保存在MAPGIS的点线面工作区中,可以调用MAPGIS的图形显示视图进行显示。先将生成的MAPGIS点线面工作区临时保存为MAPGIS工程,然后在MAPGIS的图形显

4、示视图进行显示。1.5 图形输出统计图生成后,也可以直接进行输出:(1)保存为MAPGIS工程文件,直接将MAPGIS点线面工作区保存为MAPGIS工程文件。该文件可以调用MAPGIS图形编辑系统进行编辑。(2)保存为图片格式,如JPEG、GIF、TIF等。保存之前必须先设置好图形的页面范围,以免图形保存不够完整或错位。2 实现应用2.1 软件包实现2.1.1 类与结构主要的类和对象有:(1) 统计图基类,初始化图形参数,生成坐标轴、图例、图形名称、数据表等要素。(2)直方图类,生成直方图,继承统计图基类。(3)曲线图类,生成曲线图,继承统计图基类。(4),饼图类,生成饼图,继承统计图基类。(

5、5)图形参数结构,包括坐标轴参数、图例参数、图形名称等参数。(6)坐标轴参数结构。(7)图例参数结构。(8)圆弧参数结构,在饼图中使用。实现流程图统计图 曲线图直方图饼形图柱形图设置参数数据参数图例参数坐标参数基本参数java利用JFreeChart实现各种数据统计图(柱形图,饼图,折线图)二,实现柱形图的java代码: import java.awt.Font;import org.jfree.chart.ChartFactory;import org.jfree.chart.ChartPanel;import org.jfree.chart.JFreeChart;import org.jf

6、ree.chart.axis.CategoryAxis;import org.jfree.chart.axis.ValueAxis;import org.jfree.chart.plot.CategoryPlot;import org.jfree.chart.plot.PlotOrientation;import org.jfree.data.category.CategoryDataset;import org.jfree.data.category.DefaultCategoryDataset;public class BarChart ChartPanel frame1;public B

7、arChart()CategoryDataset dataset = getDataSet(); JFreeChart chart = ChartFactory.createBarChart3D( 水果, / 图表标题 水果种类, / 目录轴的显示标签 数量, / 数值轴的显示标签 dataset, / 数据集 PlotOrientation.VERTICAL, / 图表方向:水平、垂直 true, / 是否显示图例(对于简单的柱状图必须是false) false, / 是否生成工具 false / 是否生成URL链接 ); /从这里开始 CategoryPlot plot=chart.get

8、CategoryPlot();/获取图表区域对象 CategoryAxis domainAxis=plot.getDomainAxis(); /水平底部列表 domainAxis.setLabelFont(new Font(黑体,Font.BOLD,14); /水平底部标题 domainAxis.setTickLabelFont(new Font(宋体,Font.BOLD,12); /垂直标题 ValueAxis rangeAxis=plot.getRangeAxis();/获取柱状 rangeAxis.setLabelFont(new Font(黑体,Font.BOLD,15); chart

9、.getLegend().setItemFont(new Font(黑体, Font.BOLD, 15); chart.getTitle().setFont(new Font(宋体,Font.BOLD,20);/设置标题字体 /到这里结束,虽然代码有点多,但只为一个目的,解决汉字乱码问题 frame1=new ChartPanel(chart,true); /这里也可以用chartFrame,可以直接生成一个独立的Frame private static CategoryDataset getDataSet() DefaultCategoryDataset dataset = new Defa

10、ultCategoryDataset(); dataset.addValue(100, 北京, 苹果); dataset.addValue(100, 上海, 苹果); dataset.addValue(100, 广州, 苹果); dataset.addValue(200, 北京, 梨子); dataset.addValue(200, 上海, 梨子); dataset.addValue(200, 广州, 梨子); dataset.addValue(300, 北京, 葡萄); dataset.addValue(300, 上海, 葡萄); dataset.addValue(300, 广州, 葡萄);

11、 dataset.addValue(400, 北京, 香蕉); dataset.addValue(400, 上海, 香蕉); dataset.addValue(400, 广州, 香蕉); dataset.addValue(500, 北京, 荔枝); dataset.addValue(500, 上海, 荔枝); dataset.addValue(500, 广州, 荔枝); return dataset;public ChartPanel getChartPanel()return frame1;效果图如下:但我们把privatestaticCategoryDataset getDataSet()

12、方法中的数据变化一下后,又会形成另一种效果,比如说我们改成:private static CategoryDataset getDataSet() DefaultCategoryDataset dataset = new DefaultCategoryDataset(); dataset.addValue(100, 苹果, 苹果); dataset.addValue(200, 梨子, 梨子); dataset.addValue(300, 葡萄, 葡萄); dataset.addValue(400, 香蕉, 香蕉); dataset.addValue(500, 荔枝, 荔枝); return dataset;效果图如下:三,实现饼状图的java代码: package com.njue.testJFreeChart;import java.awt.Font;import java.text.DecimalFormat;impor

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号