请举一个例子用jfreechar画一个曲线图

解决方案 »

  1.   

    index.jsp<%@ page contentType="text/html;charset=GBK"%>
    <%@ page import="org.jfree.data.general.DefaultPieDataset"%>
    <%@ page import="org.jfree.chart.*"%>
    <%@ page import="org.jfree.chart.plot.*"%>
    <%@ page import="org.jfree.chart.servlet.ServletUtilities"%>
    <%@ page import="org.jfree.chart.labels.StandardPieItemLabelGenerator"%>
    <%@ page import="org.jfree.chart.urls.StandardPieURLGenerator"%>
    <%@ page import="org.jfree.chart.entity.StandardEntityCollection"%>
    <%@ page import="java.io.*"%>
    <HTML>
    <HEAD>
    <META http-equiv=Content-Type content="text/html; charset=GBK">
    <TITLE>[email protected]</TITLE>
    </HEAD>
    <BODY>
    <%DefaultPieDataset data = new DefaultPieDataset();
    data.setValue("高中以下",370);
    data.setValue("高中",1530);
    data.setValue("大专",5700);
    data.setValue("本科",8280);
    data.setValue("硕士",4420);
    data.setValue("博士",80);PiePlot3D plot = new PiePlot3D(data);//3D饼图
    plot.setURLGenerator(new StandardPieURLGenerator("barview.jsp"));//设定链接
    JFreeChart chart = new JFreeChart("",JFreeChart.DEFAULT_TITLE_FONT, plot, true);
    chart.setBackgroundPaint(java.awt.Color.white);//可选,设置图片背景色
    chart.setTitle("程序员学历情况调查表");//可选,设置图片标题
    plot.setToolTipGenerator(new StandardPieItemLabelGenerator());
    StandardEntityCollection sec = new StandardEntityCollection();
    ChartRenderingInfo info = new ChartRenderingInfo(sec);
    PrintWriter w = new PrintWriter(out);//输出MAP信息
    //500是图片长度,300是图片高度
    String filename = ServletUtilities.saveChartAsPNG(chart, 500, 300, info, session);
    out.print("图片读写完毕");
    ChartUtilities.writeImageMap(w, "map0", info, false);String graphURL = request.getContextPath() + "/servlet/DisplayChart?filename=" + filename;%><P ALIGN="CENTER">
    <img src="<%= graphURL %>" width=500 height=300 border=0 usemap="#map0" alt="">
    </P>
    </BODY>
    </HTML>
    //=========================================
    barview.jsp
    <HTML>
    <HEAD>
    <META http-equiv=Content-Type content="text/html; charset=GBK">
    <TITLE>[email protected]</TITLE>
    </HEAD><body><%@ page contentType="text/html;charset=GBK"%>
    <%@ page import="org.jfree.chart.ChartFactory,
    org.jfree.chart.JFreeChart,
    org.jfree.chart.plot.PlotOrientation,
    org.jfree.chart.servlet.ServletUtilities,
    org.jfree.data.category.*"%>
    <%
    CategoryDataset dataset;
    String category=request.getParameter("category");
    category= new String(category.getBytes("ISO8859_1"), "GBK");
    if(category.equals("本科")||category.equals("高中")||category.equals("大专"))
    {
    dataset=getDataSet();
    }
    else if(category.equals("硕士")||category.equals("博士"))
    {
    dataset=getDataSet2();
    }else
    {
    dataset=getDataSet3();
    }
    String title=category+"程序员在各城市薪金情况统计";
    JFreeChart chart = ChartFactory.createBarChart3D(title,
    "城市",
    "薪金",
    dataset,
    PlotOrientation.VERTICAL,
    true,
    false,
    false);String filename = ServletUtilities.saveChartAsPNG(chart, 500, 300, null, session);
    String graphURL = request.getContextPath() + "/servlet/DisplayChart?filename=" + filename;
    %>
    <P ALIGN="CENTER">
    <img src="<%= graphURL %>" width=500 height=300 border=0 usemap="#<%= filename %>">
    </P>
    <%!
    private static CategoryDataset getDataSet() {
    DefaultCategoryDataset dataset = new DefaultCategoryDataset();
    dataset.addValue(2000, "北京", "VB");
    dataset.addValue(1800, "上海", "VB");
    dataset.addValue(2200, "广州", "VB");
    dataset.addValue(3200, "北京", "JAVA");
    dataset.addValue(3500, "上海", "JAVA");
    dataset.addValue(3600, "广州", "JAVA");
    dataset.addValue(3300, "北京", "DOT NET");
    dataset.addValue(3400, "上海", "DOT NET");
    dataset.addValue(3700, "广州", "DOT NET");
    dataset.addValue(2500, "北京", "DELPHI");
    dataset.addValue(2800, "上海", "DELPHI");
    dataset.addValue(3200, "广州", "DELPHI");
    dataset.addValue(5000, "北京", "VC");
    dataset.addValue(3500, "上海", "VC");
    dataset.addValue(4600, "广州", "VC");
    return dataset;
    }
    private static CategoryDataset getDataSet2() {
    DefaultCategoryDataset dataset = new DefaultCategoryDataset();
    dataset.addValue(2000, "上海", "VB");
    dataset.addValue(3000, "北京", "JAVA");
    dataset.addValue(3330, "上海", "JAVA");
    dataset.addValue(3500, "广州", "JAVA");
    dataset.addValue(3500, "北京", "DOT NET");
    dataset.addValue(4000, "上海", "DOT NET");
    dataset.addValue(4800, "广州", "DOT NET");
    dataset.addValue(2600, "北京", "DELPHI");
    dataset.addValue(2200, "上海", "DELPHI");
    dataset.addValue(4000, "北京", "VC");
    dataset.addValue(4000, "上海", "VC");
    dataset.addValue(4200, "广州", "VC");
    return dataset;
    }
    private static CategoryDataset getDataSet3() {
    DefaultCategoryDataset dataset = new DefaultCategoryDataset();
    dataset.addValue(2100, "北京", "VB");
    dataset.addValue(2200, "上海", "VB");
    dataset.addValue(2100, "广州", "VB");
    dataset.addValue(3000, "北京", "JAVA");
    dataset.addValue(3200, "上海", "JAVA");
    dataset.addValue(3600, "广州", "JAVA");
    dataset.addValue(4100, "北京", "DOT NET");
    dataset.addValue(4200, "上海", "DOT NET");
    dataset.addValue(4160, "广州", "DOT NET");
    dataset.addValue(2400, "北京", "DELPHI");
    dataset.addValue(2600, "上海", "DELPHI");
    dataset.addValue(2500, "广州", "DELPHI");
    dataset.addValue(5400, "北京", "VC");
    dataset.addValue(5000, "上海", "VC");
    dataset.addValue(5500, "广州", "VC");
    return dataset;
    }
    %>
    </body>
    </html>//=======================
    web.xml
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd"><web-app>
      <display-name>web</display-name>
      <servlet>
        <servlet-name>DisplayChart</servlet-name>
        <servlet-class>org.jfree.chart.servlet.DisplayChart</servlet-class>
      </servlet>
      <servlet-mapping>
        <servlet-name>DisplayChart</servlet-name>
        <url-pattern>/servlet/DisplayChart</url-pattern>
      </servlet-mapping>
    </web-app>