《java做曲线图柱状图数据统计》由会员分享,可在线阅读,更多相关《java做曲线图柱状图数据统计(41页珍藏版)》请在金锄头文库上搜索。
1、.如何引用jar包project-projectproperties-左侧选择path-右侧选择requiredlibraries-add-archives,然后找到你要导入的包,点击OK即可JFREECHARTDOCUMENTJFreeChart核心对象类介绍类名类的作用以及简单描述JFreeChart图表对象,任何类型的图表的最终表现形式都是在该对象进行一些属性的定制。JFreeChart引擎本身提供了一个工厂类用于创建不同类型的图表对象XXXXXDataset数据集对象,用于提供显示图表所用的数据。根据不同类型的图表对应着很多类型的数据集对象类XXXXXPlot图表区域对象,基本上这个对
2、象决定着什么样式的图表,创建该对象的时候需要Axis、Renderer以及数据集对象的支持XXXXXAxis用于处理图表的两个轴:纵轴和横轴XXXXXRenderer负责如何显示一个图表对象XXXXXURLGenerator用于生成Web图表中每个项目的鼠标点击链接XXXXXToolTipGenerator用于生成图象的帮助提示,不同类型图表对应不同类型的工具提示类下面以柱状图和饼图以及折线图为例,介绍图形创建方法。1) 柱状图org.jfree.chart.ChartFactory这个工厂类有createBarChart、createStackedBarChart、createBarChar
3、t3D、createStackedBarChart3D,这几个工厂方法创建不同类型的柱状图,比较重要的是PlotOrientation.VERTICAL让平行柱垂直显示,而PlotOrientation.HORIZONTAL则让平行柱水平显示。对柱状图影响较大的几个类包括:org.jfree.chart.axis.CategoryAxis、org.jfree.chart.axis.ValueAxis、org.jfree.chart.renderer.BarRenderer、org.jfree.chart.renderer.BarRenderer3D。具体实现步骤:(1) 创建用于图形生成所要的
4、数据集对象。CategoryDatasetdataset=DatasetUtilities.createCategoryDataset(rowKeys,columnKeys,data);其中:rowKeys表示X轴数据,columnKeys表示Y轴数据,data表示填充柱状图所要的实际数据(来自于数据库)。(2) 创建图形对象。JFreeChartchart=ChartFactory.createBarChart3D(标题,/图形的标题null,/X轴标题null,/Y轴标题dataset,/数据PlotOrientation.VERTICAL,,/图表方向true,/是否显示图例false,
5、/启用热键false)/启用超键接createBarChart3D方法是ChartFactory工厂类里的一个方法,用于3D柱状图的生成,该类继承自JFreeChart。(3) 设置图形显示的属性a)ValueAxis类,设置柱到图上下边的距离。实现方法是:ValueAxisrangeAxis=plot.getRangeAxis();设置最高的一个柱与图片顶端的距离:rangeAxis.setUpperMargin(0.15)设置最低的一个柱与图片底端的距离:rangeAxis.setLowerMargin(0.15)b)org.jfree.chart.renderer.BarRenderer
6、3D类,设置图形上显示的数值。实现方法如下:BarRenderer3Drenderer=newBarRenderer3D();renderer.setBaseOutlinePaint(Color.BLACK);设置Wall的颜色:renderer.setWallPaint(Color.gray);设置每个柱的颜色:renderer.setSeriesPaint(0,newColor(0,0,255);renderer.setSeriesPaint(1,newColor(0,100,255);renderer.setSeriesPaint(2,Color.GREEN);设置每个柱的Outline
7、颜色renderer.setSeriesOutlinePaint(0,Color.BLACK);renderer.setSeriesOutlinePaint(1,Color.BLACK);renderer.setSeriesOutlinePaint(2,Color.BLACK);设置每个地区所包含的平行柱之间的距离renderer.setItemMargin(0.1);显示每个柱的数值,并修改该数值的字体属性renderer.setItemLabelGenerator(newStandardCategoryItemLabelGenerator();renderer.setItemLabelFo
8、nt(newFont(黑体,Font.PLAIN,12);renderer.setItemLabelsVisible(true);为图形加入超连接renderer.setItemURLGenerator(newStandardCategoryURLGenerator();renderer.setToolTipGenerator(newStandardCategoryToolTipGenerator();柱状图DEMO:packagecom.cons.jfreechart;importjava.awt.Color;importjava.io.File;importjava.io.FileOutp
9、utStream;importorg.jfree.chart.ChartFactory;importorg.jfree.chart.ChartPanel;importorg.jfree.chart.ChartRenderingInfo;importorg.jfree.chart.ChartUtilities;importorg.jfree.chart.JFreeChart;importorg.jfree.chart.axis.NumberAxis3D;importorg.jfree.chart.entity.StandardEntityCollection;importorg.jfree.ch
10、art.plot.CategoryPlot;importorg.jfree.chart.plot.PlotOrientation;importorg.jfree.chart.plot.XYPlot;importorg.jfree.chart.renderer.category.BarRenderer;importorg.jfree.chart.renderer.category.BarRenderer3D;importorg.jfree.chart.renderer.xy.XYBarRenderer;importorg.jfree.chart.renderer.xy.XYItemRendere
11、r;importorg.jfree.data.category.CategoryDataset;importorg.jfree.data.category.DefaultCategoryDataset;importorg.jfree.ui.ApplicationFrame;importorg.jfree.ui.RefineryUtilities;publicclassBarChartDemoextendsApplicationFramepublicBarChartDemo()super();/*获取一个演示用的简单数据集对象*return*/privatestaticCategoryDatas
12、etgetDataSet()DefaultCategoryDatasetdataset=newDefaultCategoryDataset();dataset.addValue(100,null,苹果);dataset.addValue(200,null,梨子);dataset.addValue(300,null,葡萄);dataset.addValue(400,null,香蕉);dataset.addValue(500,null,荔枝);returndataset;/*获取一个演示用的组合数据集对象*return*/privatestaticCategoryDatasetgetDataSet
13、2()DefaultCategoryDatasetdataset=newDefaultCategoryDataset();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.addValu
14、e(300,广州,葡萄);dataset.addValue(400,北京,香蕉);dataset.addValue(400,上海,香蕉);dataset.addValue(400,广州,香蕉);dataset.addValue(500,北京,荔枝);dataset.addValue(500,上海,荔枝);dataset.addValue(500,广州,荔枝);returndataset;/*paramargs*/publicstaticvoidmain(Stringargs)CategoryDatasetdataset=getDataSet2();JFreeChartchart=ChartFactory.createBarChart3D(水果产量图,/图表标题水果,/目录轴的显示标签产量,/数值轴的显示标签dataset,/数据集PlotOrientation.VERTICAL,/图表方向:水平、垂直true,/是否显示图例(对于简单的柱状图必须是false)false,/是否生成工具fals