java做曲线图柱状图数据统计培训资料.doc
《java做曲线图柱状图数据统计培训资料.doc》由会员分享,可在线阅读,更多相关《java做曲线图柱状图数据统计培训资料.doc(46页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、Good is good, but better carries it.精益求精,善益求善。java做曲线图柱状图数据统计-如何引用jar包project-projectproperties-左侧选择path-右侧选择requiredlibraries-add-archives,然后找到你要导入的包,点击OK即可JFREECHARTDOCUMENTJFreeChart核心对象类介绍类名类的作用以及简单描述JFreeChart图表对象,任何类型的图表的最终表现形式都是在该对象进行一些属性的定制。JFreeChart引擎本身提供了一个工厂类用于创建不同类型的图表对象XXXXXDataset数据集对
2、象,用于提供显示图表所用的数据。根据不同类型的图表对应着很多类型的数据集对象类XXXXXPlot图表区域对象,基本上这个对象决定着什么样式的图表,创建该对象的时候需要Axis、Renderer以及数据集对象的支持XXXXXAxis用于处理图表的两个轴:纵轴和横轴XXXXXRenderer负责如何显示一个图表对象XXXXXURLGenerator用于生成Web图表中每个项目的鼠标点击链接XXXXXToolTipGenerator用于生成图象的帮助提示,不同类型图表对应不同类型的工具提示类下面以柱状图和饼图以及折线图为例,介绍图形创建方法。1) 柱状图org.jfree.chart.ChartFa
3、ctory这个工厂类有createBarChart、createStackedBarChart、createBarChart3D、createStackedBarChart3D,这几个工厂方法创建不同类型的柱状图,比较重要的是PlotOrientation.VERTICAL让平行柱垂直显示,而PlotOrientation.HORIZONTAL则让平行柱水平显示。对柱状图影响较大的几个类包括:org.jfree.chart.axis.CategoryAxis、org.jfree.chart.axis.ValueAxis、org.jfree.chart.renderer.BarRenderer、
4、org.jfree.chart.renderer.BarRenderer3D。具体实现步骤:(1) 创建用于图形生成所要的数据集对象。CategoryDatasetdataset=DatasetUtilities.createCategoryDataset(rowKeys,columnKeys,data);其中:rowKeys表示X轴数据,columnKeys表示Y轴数据,data表示填充柱状图所要的实际数据(来自于数据库)。(2) 创建图形对象。JFreeChartchart=ChartFactory.createBarChart3D(标题,/图形的标题null,/X轴标题null,/Y轴标
5、题dataset,/数据PlotOrientation.VERTICAL,,/图表方向true,/是否显示图例false,/启用热键false)/启用超键接createBarChart3D方法是ChartFactory工厂类里的一个方法,用于3D柱状图的生成,该类继承自JFreeChart。(3) 设置图形显示的属性a)ValueAxis类,设置柱到图上下边的距离。实现方法是:ValueAxisrangeAxis=plot.getRangeAxis();设置最高的一个柱与图片顶端的距离:rangeAxis.setUpperMargin(0.15)设置最低的一个柱与图片底端的距离:rangeAx
6、is.setLowerMargin(0.15)b)org.jfree.chart.renderer.BarRenderer3D类,设置图形上显示的数值。实现方法如下:BarRenderer3Drenderer=newBarRenderer3D();renderer.setBaseOutlinePaint(Color.BLACK);设置Wall的颜色:renderer.setWallPaint(Color.gray);设置每个柱的颜色:renderer.setSeriesPaint(0,newColor(0,0,255);renderer.setSeriesPaint(1,newColor(0,
7、100,255);renderer.setSeriesPaint(2,Color.GREEN);设置每个柱的Outline颜色renderer.setSeriesOutlinePaint(0,Color.BLACK);renderer.setSeriesOutlinePaint(1,Color.BLACK);renderer.setSeriesOutlinePaint(2,Color.BLACK);设置每个地区所包含的平行柱之间的距离renderer.setItemMargin(0.1);显示每个柱的数值,并修改该数值的字体属性renderer.setItemLabelGenerator(ne
8、wStandardCategoryItemLabelGenerator();renderer.setItemLabelFont(newFont(黑体,Font.PLAIN,12);renderer.setItemLabelsVisible(true);为图形加入超连接renderer.setItemURLGenerator(newStandardCategoryURLGenerator();renderer.setToolTipGenerator(newStandardCategoryToolTipGenerator();柱状图DEMO:packagecom.cons.jfreechart;i
9、mportjava.awt.Color;importjava.io.File;importjava.io.FileOutputStream;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.j
10、free.chart.entity.StandardEntityCollection;importorg.jfree.chart.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.
11、XYBarRenderer;importorg.jfree.chart.renderer.xy.XYItemRenderer;importorg.jfree.data.category.CategoryDataset;importorg.jfree.data.category.DefaultCategoryDataset;importorg.jfree.ui.ApplicationFrame;importorg.jfree.ui.RefineryUtilities;publicclassBarChartDemoextendsApplicationFramepublicBarChartDemo(
12、)super();/*获取一个演示用的简单数据集对象*return*/privatestaticCategoryDatasetgetDataSet()DefaultCategoryDatasetdataset=newDefaultCategoryDataset();dataset.addValue(100,null,苹果);dataset.addValue(200,null,梨子);dataset.addValue(300,null,葡萄);dataset.addValue(400,null,香蕉);dataset.addValue(500,null,荔枝);returndataset;/*获
13、取一个演示用的组合数据集对象*return*/privatestaticCategoryDatasetgetDataSet2()DefaultCategoryDatasetdataset=newDefaultCategoryDataset();dataset.addValue(100,北京,苹果);dataset.addValue(100,上海,苹果);dataset.addValue(100,广州,苹果);dataset.addValue(200,北京,梨子);dataset.addValue(200,上海,梨子);dataset.addValue(200,广州,梨子);dataset.ad
14、dValue(300,北京,葡萄);dataset.addValue(300,上海,葡萄);dataset.addValue(300,广州,葡萄);dataset.addValue(400,北京,香蕉);dataset.addValue(400,上海,香蕉);dataset.addValue(400,广州,香蕉);dataset.addValue(500,北京,荔枝);dataset.addValue(500,上海,荔枝);dataset.addValue(500,广州,荔枝);returndataset;/*paramargs*/publicstaticvoidmain(Stringargs
15、)CategoryDatasetdataset=getDataSet2();JFreeChartchart=ChartFactory.createBarChart3D(水果产量图,/图表标题水果,/目录轴的显示标签产量,/数值轴的显示标签dataset,/数据集PlotOrientation.VERTICAL,/图表方向:水平、垂直true,/是否显示图例(对于简单的柱状图必须是false)false,/是否生成工具false/是否生成URL链接);CategoryPlotplot=chart.getCategoryPlot();BarRenderer3Drenderer3D=(BarRend
16、erer3D)plot.getRenderer();/BarRenderer3Drenderer3D=newBarRenderer3D();renderer3D.setSeriesPaint(0,Color.ORANGE);/设置柱子的颜色renderer3D.setSeriesPaint(1,Color.RED);renderer3D.setSeriesPaint(2,Color.BLACK);/NumberAxis3DnumberAxis3D=(NumberAxis3D)plot.getRangeAxis();/numberAxis3D.setStandardTickUnits(Numbe
17、rAxis3D.createIntegerTickUnits();ChartPanelchartPanel=newChartPanel(chart);chartPanel.setPreferredSize(newjava.awt.Dimension(500,270);Filefos_jpg=null;FileOutputStreamoutputStream=null;ChartRenderingInfoinfo=newChartRenderingInfo(newStandardEntityCollection();tryfos_jpg=newFile(D:fruite.jpg);outputS
18、tream=newFileOutputStream(D:fruite1.jpg);ChartUtilities.saveChartAsJPEG(fos_jpg,chart,500,270);ChartUtilities.writeChartAsJPEG(outputStream,chart,500,270);outputStream.close();catch(Exceptione)/TODO:handleexceptionBarChartDemobarChartDemo=newBarChartDemo();barChartDemo.pack();barChartDemo.add(chartP
19、anel);RefineryUtilities.centerFrameOnScreen(barChartDemo);barChartDemo.setVisible(true);注意:3D的柱状图和2D的柱状图做法是一样的,如果纯粹画图就不要继承ApplicationFrame2)饼图具体实现步骤:1)创建用于图形生成所要的数据集对象。首先实例化类DefaultPieDatasetdataset=newDefaultPieDataset()。然后利用DefaultPieDataset类提供的setValue(value1,value2)方法,把从数据库里提取的数据存入DefaultPieData
20、set对象。其中value1是数据名称、value2是数据值。2)创建图形对象。首先实例化JFreeChartchart=ChartFactory.createPieChart3D(title,dataset,true,true,false)createPieChart3D方法是用于饼图生成的主要方法。其中title代表图形的标题、dataset就是DefaultPieDataset对象的实例。3)设置图形显示的属性。Stringfilename=ServletUtilities.saveChartAsPNG(jFreeChart,700,450,info,session);ChartUtil
21、ities.writeImageMap(pw,filename,info);pw.flush()saveChartAsPNG方法在ServletUtilities工厂类定义完成。主要用于把图形对象JFreeChart以图片的形式保存。其中的jFreeChart就是JFreeChart对象的实例。该方法返回一个文件名。writeImageMap(pw,filename,info)方法用于把保存的图片文件以字节流的形式写入用户界面。其中pw是java.io包的PrintWriter类的实例对象,该对象创建一个图形输出流。Filename是输出图片的文件名。该文件名来自ServletUtilitie
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- java 曲线图 柱状图 数据 统计 培训资料
限制150内