《JFreeChart 图表生成实例》由会员分享,可在线阅读,更多相关《JFreeChart 图表生成实例(9页珍藏版)》请在金锄头文库上搜索。
1、JFreeChart 图表生成实例(饼图、柱状图、折线图、时序图)importjava.awt.BasicStroke; importjava.awt.Color;importjava.io.FileOutputStream; importjava.io.IOException; importjava.text.DateFormat; importjava.text.SimpleDateFormat;importjavax.servlet.ServletException; importjavax.servlet.ServletRequest; importjavax.servlet.Serv
2、letResponse; importjavax.servlet. . Servlet;importorg.jfree.data.category.CategoryDataset; importorg.jfree.data.category.DefaultCategoryDataset; importorg.jfree.data.general.DefaultPieDataset; importorg.jfree.data.time.Day; importorg.jfree.data.time.TimeSeries; importorg.jfree.data.time.TimeSeriesCo
3、llection; importorg.jfree.data.xy.XYDataset; importorg.jfree.chart.*; importorg.jfree.chart.axis.CategoryAxis; importorg.jfree.chart.axis.DateAxis; importorg.jfree.chart.axis.DateTickUnit; importorg.jfree.chart.axis.DateTickUnitType; importorg.jfree.chart.axis.ValueAxis; importorg.jfree.chart.plot.C
4、ategoryPlot; importorg.jfree.chart.plot.PiePlot; importorg.jfree.chart.plot.PlotOrientation; importorg.jfree.chart.plot.XYPlot;importorg.jfree.chart.renderer.category.LineAndShapeRenderer; importorg.jfree.chart.servlet.ServletUtilities; importorg.jfree.chart.title.TextTitle; importcom.lowagie.text.F
5、ont;import demo.BarChart3DDemo1;/* Servlet implementation class ChartDemoServlet*/public class ChartDemoServlet extends Servlet private static final long serialVersionUID = 1L; publicChartDemoServlet() super();/ TODO Auto-generated constructor stubpublic void service(ServletRequest request, ServletR
6、esponse response) throws ServletException, IOExceptionresponse.setContentType(“image/jpeg“); DefaultPieDataset data = getDataSet(); CategoryDataset dataset = getDataSet2(); DefaultCategoryDatasetlinedataset = createDataset();/JFreeChart chart = ChartFactory.createPieChart3D(“水果产量图“, data, true, fals
7、e, false);/*JFreeChart chart = ChartFactory.createBarChart3D(水“ 果产量图“, / 图表标题水“ 果“, / 名目轴的显示标签产“ 量“, / 数值轴的显示标签dataset, /数据集PlotOrientation.VERTICAL, / 图表方向:水平、垂直true, / 是否显示图例(对于简洁的柱状图必需是 false)false, / 是否生成工具false / 是否生成 URL 链接);*/JFreeChart chart = ChartFactory.createLineChart( “折线图“, / 图表标题“时间“,
8、 / 横轴显示标签“销售额(百万)“, / 纵轴显示标签linedataset, / 数据集PlotOrientation.VERTICAL, / 图表方向:水平、垂直true, /是否显示图例标识(对于简洁的柱状图必需是 false) true, /是否生成工具false /是否生成 URL 链接);/*JFreeChart chart=ChartFactory.createTimeSeriesChart( “编程词典全国销量统计“, “销售月份“, “销量份“, createtimedata(), false, false, false);*/* jfreechart1.0.13生成的图片
9、中,中文都以方框形式显示,中文乱码解决如下包括:饼图、柱状图、时序图、折线图。*/*设置饼图相关属性*/*PiePlotpieplot = (PiePlot) chart.getPlot();/猎取饼图区域对象。pieplot.setLabelFont(new java.awt.Font(“宋体“,0,12); pieplot.setNoDataMessage(“很多据显示“); /没有数据的时候显示的内容pieplot.setCircular(false);pieplot.setLabelGap(0.02D); TextTitletxtTitle = null; txtTitle = cha
10、rt.getTitle();java.awt.Font font = new java.awt.Font(“宋体“, Font.BOLD, 16); txtTitle.setFont(font);/解决标题中文乱码chart.getLegend().setItemFont(font); chart.setBackgroundPaint(new Color(232,232,232);/设定背景pieplot.setBackgroundPaint(Color.white); /设定图表数据显示局部背风光*/*设置柱状图、折线图相关属性*/CategoryPlotcatplot=chart.getC
11、ategoryPlot(); /猎取柱状图、折线图区域对象。CategoryAxisdomainAxis=catplot.getDomainAxis(); catplot.setNoDataMessage(“很多据显示“);/没有数据的时候显示的内容/列表标题TextTitletxtTitle = null; txtTitle = chart.getTitle();txtTitle.setFont(new java.awt.Font(“黑体“,Font.BOLD,14);/水平底部列表domainAxis.setLabelFont(new java.awt.Font(“黑体“,Font.BOL
12、D,14);/水平底部标题domainAxis.setTickLabelFont(new java.awt.Font(“宋体“,Font.BOLD,12);/垂直标题ValueAxisrangeAxis=catplot.getRangeAxis();/猎取柱状rangeAxis.setLabelFont(new java.awt.Font(“黑体“,Font.BOLD,15); chart.getLegend().setItemFont(new java.awt.Font(“黑体“, Font.BOLD, 15);/获得 renderer LineAndShapeRendererlineAnd
13、ShapeRenderer=(LineAndShapeRenderer)catplot.getRenderer(); lineAndShapeRenderer.setShapesVisible(true); /series 点即数据点可见/*lineAndShapeRenderer.setSeriesStroke(0, new BasicStroke(2.0F, 1, 1, 1.0F, new float 10F, 6F, 0.0F); /这里是虚线,默认是直线*/*设置时序图相关属性*/*XYPlotxyplot = (XYPlot) chart.getPlot();/猎取时序图区域对象。/
14、列表标题TextTitletxtTitle = null; txtTitle = chart.getTitle();txtTitle.setFont(new java.awt.Font(“黑体“,Font.BOLD,15);/纵轴字体xyplot.getRangeAxis().setLabelFont(new java.awt.Font(“宋体“, Font.BOLD, 12);/横轴框里的标题字体:显示图例/chart.getLegend().setItemFont(new java.awt.Font(“宋体“, Font.ITALIC, 12);/横轴列表字体xyplot.getDomai
15、nAxis().setTickLabelFont(new java.awt.Font(“新宋体“, 1, 12);/横轴小标题字体xyplot.getDomainAxis().setLabelFont(new java.awt.Font(“新宋体“, 1, 12); chart.setBackgroundPaint(new Color(252,175,134); /设置背风光xyplot.setDomainGridlinesVisible(false); /设置网格不显示/猎取时间轴对象DateAxisdateAxis = (DateAxis) xyplot.getDomainAxis();/dateAxis