JFreeChart 图表生成实例

更新时间:2024-03-31 00:30:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

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.ServletResponse; importjavax.servlet.http.HttpServlet;

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.TimeSeriesCollection; 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.CategoryPlot; 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.Font;

import demo.BarChart3DDemo1; /**

* Servlet implementation class ChartDemoServlet */

public class ChartDemoServlet extends HttpServlet { private static final long serialVersionUID = 1L; publicChartDemoServlet() { super();

// TODO Auto-generated constructor stub }

public void service(ServletRequest request, ServletResponse response) throws ServletException, IOException{

response.setContentType(\DefaultPieDataset data = getDataSet(); CategoryDataset dataset = getDataSet2();

DefaultCategoryDatasetlinedataset = createDataset();

//JFreeChart chart = ChartFactory.createPieChart3D(\水果产量图\

/**

JFreeChart chart = ChartFactory.createBarChart3D( \水果产量图\图表标题 \水果\目录轴的显示标签 \产量\数值轴的显示标签 dataset, // 数据集

PlotOrientation.VERTICAL, // 图表方向:水平、垂直 true, // 是否显示图例(对于简单的柱状图必须是 false)

false, // 是否生成工具 false // 是否生成 URL 链接 ); **/

JFreeChart chart = ChartFactory.createLineChart( \折线图\图表标题 \时间\横轴显示标签

\销售额(百万)\纵轴显示标签 linedataset, // 数据集

PlotOrientation.VERTICAL, // 图表方向:水平、垂直

true, // 是否显示图例标识(对于简单的柱状图必须是 false) true, // 是否生成工具 false // 是否生成 URL 链接 ); /*

JFreeChart chart=ChartFactory.createTimeSeriesChart( \编程词典全国销量统计\ , \销售月份\ , \销量(份)\ , createtimedata() , false , false , false ); */ /*

* jfreechart1.0.13生成的图片中,中文都以方框形式显示,中文乱码解决如下(包括:饼图、柱状图、时序图、折线图)。 */

/***设置饼图相关属性***/ /*

PiePlotpieplot = (PiePlot) chart.getPlot();//获取饼图区域对象。

pieplot.setLabelFont(new java.awt.Font(\宋体\

pieplot.setNoDataMessage(\无数据显示\没有数据的时候显示的内容 pieplot.setCircular(false); pieplot.setLabelGap(0.02D); TextTitletxtTitle = null; txtTitle = chart.getTitle();

java.awt.Font font = new java.awt.Font(\宋体\txtTitle.setFont(font);//解决标题中文乱码 chart.getLegend().setItemFont(font);

chart.setBackgroundPaint(new Color(232,232,232));//设定背景

pieplot.setBackgroundPaint(Color.white); //设定图表数据显示部分背景色 */

/***设置柱状图、折线图相关属性***/

CategoryPlotcatplot=chart.getCategoryPlot(); //获取柱状图、折线图区域对象。 CategoryAxisdomainAxis=catplot.getDomainAxis();

catplot.setNoDataMessage(\无数据显示\没有数据的时候显示的内容 //列表标题

TextTitletxtTitle = null; txtTitle = chart.getTitle();

txtTitle.setFont(new java.awt.Font(\黑体\ //水平底部列表

domainAxis.setLabelFont(new java.awt.Font(\黑体\ //水平底部标题

domainAxis.setTickLabelFont(new java.awt.Font(\宋体\ //垂直标题

ValueAxisrangeAxis=catplot.getRangeAxis();//获取柱状

rangeAxis.setLabelFont(new java.awt.Font(\黑体\

chart.getLegend().setItemFont(new java.awt.Font(\黑体\ //获得renderer

LineAndShapeRendererlineAndShapeRenderer=(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();//获取时序图区域对象。 //列表标题

TextTitletxtTitle = null; txtTitle = chart.getTitle();

txtTitle.setFont(new java.awt.Font(\黑体\ //纵轴字体

xyplot.getRangeAxis().setLabelFont(new java.awt.Font(\宋体\ //横轴框里的标题字体:显示图例

//chart.getLegend().setItemFont(new java.awt.Font(\宋体\ //横轴列表字体

xyplot.getDomainAxis().setTickLabelFont(new java.awt.Font(\新宋体\ //横轴小标题字体

xyplot.getDomainAxis().setLabelFont(new java.awt.Font(\新宋体\chart.setBackgroundPaint(new Color(252,175,134)); //设置背景色 xyplot.setDomainGridlinesVisible(false); //设置网格不显示

//获取时间轴对象

DateAxisdateAxis = (DateAxis) xyplot.getDomainAxis();

//dateAxis.setLabelFont(new java.awt.Font(\黑体\设置时间轴字体 dateAxis.setLowerMargin(0.0);//设置时间轴上显示的最小值

DateFormat format = new SimpleDateFormat(\月份\创建日期格式对象 //创建DateTickUnit对象

DateTickUnitdtu = new DateTickUnit(DateTickUnitType.DAY,29,format);

本文来源:https://www.bwwdw.com/article/eq4r.html

Top