• JfreeChart报表数据点显示、链接



    链接


    Java代码:

    import java.io.IOException;
    import java.io.PrintWriter;

    import javax.servlet.http.HttpSession;

    import org.jfree.chart.ChartRenderingInfo;
    import org.jfree.chart.ChartUtilities;
    import org.jfree.chart.JFreeChart;
    import org.jfree.chart.entity.StandardEntityCollection;
    import org.jfree.chart.labels.StandardPieToolTipGenerator;
    import org.jfree.chart.plot.PiePlot;
    import org.jfree.chart.plot.PiePlot3D;
    import org.jfree.chart.servlet.ServletUtilities;
    import org.jfree.chart.urls.StandardPieURLGenerator;
    import org.jfree.data.general.Dataset;
    import org.jfree.data.general.DefaultPieDataset;

    /**
    * JfreeChart饼状图
    * 数据点使用超链
    *
    @author archie2010
    * since 2011-4-2上午11:05:50
    */
    public class MapPieChart {


    /**
    * 生成Dataset数据集
    *
    @return
    */
    public static DefaultPieDataset getDataset() {
    //DatasetUtilities.createPieDatasetForColumn(arg0, arg1)
    DefaultPieDataset pieDataset = new DefaultPieDataset();
    pieDataset.setValue(
    "苹果", 100);
    pieDataset.setValue(
    "梨子", 200);
    pieDataset.setValue(
    "葡萄", 300);
    pieDataset.setValue(
    "香蕉", 400);
    pieDataset.setValue(
    "荔枝", 500);

    return pieDataset;
    }
    /**
    * 生成JfreeChart对象
    *
    @param dataset
    *
    @param title
    *
    @param width
    *
    @param height
    *
    @param session
    *
    @param pw
    *
    @param useMap
    *
    @param is3D
    *
    @return
    */
    public static String createPieChart(Dataset dataset,String title, int width, int height,
    HttpSession session, PrintWriter pw,String useMap,
    boolean is3D) {
    String filename
    = "";

    PiePlot plot
    = null;
    if(is3D){
    plot
    = new PiePlot3D((DefaultPieDataset)dataset);// 3D饼图
    }else{
    plot
    = new PiePlot((DefaultPieDataset)dataset);
    }
    plot.setURLGenerator(
    new StandardPieURLGenerator("view.jsp","fruit","pieIdex"));// 设定热区超链接

    JFreeChart chart
    = new JFreeChart("", JFreeChart.DEFAULT_TITLE_FONT,
    plot,
    true);
    chart.setBackgroundPaint(java.awt.Color.white);
    // 可选,设置图片背景色
    chart.setTitle(title);// 可选,设置图片标题

    plot.setToolTipGenerator(
    new StandardPieToolTipGenerator());
    plot.setNoDataMessage(
    "无数据显示");

    StandardEntityCollection sec
    = new StandardEntityCollection();
    ChartRenderingInfo info
    = new ChartRenderingInfo(sec);

    try {
    filename
    = ServletUtilities.saveChartAsPNG(chart, 500, 300, info,
    session);
    ChartUtilities.writeImageMap(pw, useMap, info,
    false);// 输出MAP信息
    pw.flush();
    }
    catch (IOException e) {
    e.printStackTrace();
    }

    return filename;
    }
    }

    页面

    <%@ page contentType="text/html;charset=GBK"%>
    <%@ page import="com.tq365.chart.MapPieChart"%>
    <%@ page import="java.io.PrintWriter"%>
    <HTML>
    <HEAD>
    <META http-equiv=Content-Type content="text/html; charset=GBK">
    </HEAD>
    <BODY>
    <%
    String filename = MapPieChart.createPieChart(MapPieChart
    .getDataset(),
    "水果产量图",480, 350, session, new PrintWriter(out),
    "imgMap", false);
    String file = request.getContextPath()
    + "/servlet/DisplayChart?filename=" + filename;

    String filename1 = MapPieChart.createPieChart(MapPieChart
    .getDataset(),
    "水果产量图",480, 350, session, new PrintWriter(out),
    "imgMap1", true);
    String file1 = request.getContextPath()
    + "/servlet/DisplayChart?filename=" + filename1;
    %>

    <P ALIGN="CENTER">
    <img src="<%=file%>" border=0 usemap="#imgMap">
    </P>
    <P ALIGN="CENTER">
    <img src="<%=file1%>" border=0 usemap="#imgMap1">
    </P>

    </BODY>
    </HTML>

    by archie
  • 相关阅读:
    Yii2.0中文开发向导——Yii2中多表关联查询(join、joinwith)(转)
    yii2权限控制rbac之rule详细讲解(转)
    Yii2提交表单提示无法验证
    php 数组排序以及按照某个字段排序
    Yii 框架里数据库操作详解-[增加、查询、更新、删除的方法 'AR模式']
    Yii2的深入学习--自动加载机制(转)
    YII2 自定义日志路径
    Yii2-Redis使用小记
    windows下安装php5.5的redis扩展
    php json_decode返回null
  • 原文地址:https://www.cnblogs.com/archie2010/p/2003220.html
Copyright © 2020-2023  润新知