jfreechart的三个例子

本文详细介绍如何使用Java和JFreeChart库绘制三种类型的图表:柱状图、饼状图及折线图。通过示例代码展示了如何配置数据集、设置图表样式及生成图片。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

第一步:导包

            itext-2.0.1.jar,jcommon-1.0.9.jar,jfreechart-1.0.5-experimental.jar,jfreechart-1.0.5-swt.jar,jfreechart-1.0.5.jar,swtgraphics2d.jar

第二步:配置xml文件

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.5" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee   http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
  <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>

  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
</web-app>

 

第三步:写代码

            第一个例子:

                             <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@ page import="org.jfree.chart.ChartFactory,
    org.jfree.chart.JFreeChart,
    org.jfree.chart.plot.PlotOrientation,
    org.jfree.chart.servlet.ServletUtilities,
    org.jfree.data.category.DefaultCategoryDataset" %>

 

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
   
   
    <title>My JSP 'test1.jsp' starting page</title>
   
 <meta http-equiv="pragma" content="no-cache">
 <meta http-equiv="cache-control" content="no-cache">
 <meta http-equiv="expires" content="0">   
 <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
 <meta http-equiv="description" content="This is my page">
 <!--
 <link rel="stylesheet" type="text/css" href="styles.css">
 -->

  </head>
 
  <body>
   <%
     //产生一个数据集的收集器
      DefaultCategoryDataset dataset =
       new DefaultCategoryDataset();
       //收集数据
       dataset.setValue(300,"广州","橡胶");
       dataset.setValue(600,"襄樊","大头菜");
       dataset.setValue(500,"宜昌","柑橘");
       dataset.setValue(400,"黄石","铁矿石");
       dataset.setValue(300,"乌鲁木齐","哈密瓜");
       dataset.setValue(500,"海口","芒果");
       
       //设计图片的解决方案
       JFreeChart chart  =
       ChartFactory.createStackedBarChart(
        "水果销售图", //图标的标题
        "水果名称",   //目标轴的显示标签
        "销售量",    //数值轴的标签
        dataset,    //数据集
        PlotOrientation.VERTICAL,//图标的方向:水平 垂直
        true,  //是否显示图例(对于简单的柱状图必须是false)
        false, //是否生成工具
        false //是否生成URL连接
       );
       
       //具体生成图片的设置
       String filename =
        ServletUtilities.saveChartAsJPEG(
           chart, //创建图形面板
           500,  //设置图片大小
           300,
           null,  //默认路径
           session
       );
     String URL = request.getContextPath()
     +"/servlet/DisplayChart?filename="+filename;
 
    %>
    <img src="<%=URL %>" width="500" height="300"
    border="0" usemap="#filename" />
   
  </body>
</html>

  

        第二个例子:

             <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@ 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.StandardPieToolTipGenerator"%>
<%@ page import="org.jfree.chart.urls.StandardPieURLGenerator"%>
<%@ page import="org.jfree.chart.entity.StandardEntityCollection"%>
<%@ page import="java.io.*"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
   
    <title>饼状图</title>
   
 <meta http-equiv="pragma" content="no-cache">
 <meta http-equiv="cache-control" content="no-cache">
 <meta http-equiv="expires" content="0">   
 <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
 <meta http-equiv="description" content="This is my page">
 <!--
 <link rel="stylesheet" type="text/css" href="styles.css">
 -->

  </head>
 
  <body>
  <%
    DefaultPieDataset data =
     new DefaultPieDataset();
     data.setValue("高中以下",300);
     data.setValue("高中",200);
     data.setValue("专科",400);
     data.setValue("本科",500);
     data.setValue("硕士",100);
     PiePlot3D plot =
      new PiePlot3D(data);//产生一个3D视图
    
     JFreeChart chart = new  JFreeChart("",
     JFreeChart.DEFAULT_TITLE_FONT,//设置字体
     plot,//加入3D视图
     true //是否显示图例
     );   
    //生成map图片,需要用ChartRenderingInfo
    ChartRenderingInfo info =
     new ChartRenderingInfo(
    new StandardEntityCollection());
    //StandardEntityCollection建立一个map标准的实例集
    String filename =
    ServletUtilities.saveChartAsPNG(
      chart,
      500,
      300,
      info,
      session
    );
    
    String URL = request.getContextPath()
     +"/servlet/DisplayChart?filename="+filename;
   %>
  <img src="<%=URL %>" width="500" height="300"
    border="0" usemap="#filename" />
 
  
  </body>
</html>

 

              第三个例子:

                     <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
 <%@ page import = "org.jfree.chart.ChartFactory"%>
<%@ page import = "org.jfree.chart.JFreeChart"%>
<%@ page import = "org.jfree.chart.plot.PlotOrientation"%>
<%@ page import = "org.jfree.data.category.DefaultCategoryDataset"%>
<%@ page import = "org.jfree.chart.axis.NumberAxis"%>
<%@ page import = "org.jfree.chart.block.BlockBorder"%>
<%@ page import = "org.jfree.chart.plot.CategoryPlot"%>
<%@ page import = "org.jfree.ui.RectangleEdge"%>

<%@ page import = "org.jfree.chart.renderer.category.LineAndShapeRenderer"%>
<%@ page import = "org.jfree.chart.servlet.ServletUtilities"%>
<%@ page import = "org.jfree.chart.title.LegendTitle"%>
<%@ page import="sun.jdbc.odbc.ee.DataSource"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
   
   
    <title>血压分布图</title>
   
 <meta http-equiv="pragma" content="no-cache">
 <meta http-equiv="cache-control" content="no-cache">
 <meta http-equiv="expires" content="0">   
 <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
 <meta http-equiv="description" content="This is my page">
 <!--
 <link rel="stylesheet" type="text/css" href="styles.css">
 -->

  </head>
 
  <body>
   <%
    String series1 = "First";
    String series2 = "Second";
    String series3 = "Third";
    
    //x轴的值
    String type1 = "Type 1";
    String type2 = "Type 2";
    String type3 = "Type 3";
    String type4 = "Type 4";
    String type5 = "Type 5";
    String type6 = "Type 6";
    String type7 = "Type 7";
    String type8 = "Type 8";
    
    DefaultCategoryDataset dataset =
     new DefaultCategoryDataset();
     dataset.addValue(1.0,series1,type1);
     dataset.addValue(2.0,series1,type2);
     dataset.addValue(3.0,series1,type3);
     dataset.addValue(4.0,series1,type4);
     dataset.addValue(5.0,series1,type5);
     dataset.addValue(6.0,series1,type6);
     dataset.addValue(7.0,series1,type7);
     dataset.addValue(8.0,series1,type8);
    
     dataset.addValue(4.0,series2,type1);
     dataset.addValue(2.0,series2,type2);
     dataset.addValue(3.0,series2,type3);
     dataset.addValue(6.0,series2,type4);
     dataset.addValue(4.0,series2,type5);
     dataset.addValue(1.0,series2,type6);
     dataset.addValue(8.0,series2,type7);
     dataset.addValue(7.0,series2,type8);
   
   dataset.addValue(5.0,series3,type1);
   dataset.addValue(1.0,series3,type2);
   dataset.addValue(3.0,series3,type3);
   dataset.addValue(6.0,series3,type4);
   dataset.addValue(5.0,series3,type5);
   dataset.addValue(8.0,series3,type6);
   dataset.addValue(2.0,series3,type7);
   dataset.addValue(3.0,series3,type8);
  
  JFreeChart chart =
   ChartFactory.createLineChart(
    "血压分布图",
    "type",
    "value",
    dataset,
    PlotOrientation.VERTICAL,
    true,
    false,
    false
   );
  LegendTitle legend =
   chart.getLegend();//图例显示的位置     
   legend.setPosition
   (RectangleEdge.BOTTOM);//底部
   legend.setBorder(BlockBorder.NONE);// 没有
 
  CategoryPlot plot =
  chart.getCategoryPlot();//设置对图片的精细操作
    
    NumberAxis rangAxis =
    (NumberAxis)plot.getRangeAxis();//获得一个对y轴操作的实例
    //用整型标记
    rangAxis.setStandardTickUnits(
    NumberAxis.createIntegerTickUnits());
    //从0开始计数
    rangAxis.setAutoRangeIncludesZero(true);
    String filename = ServletUtilities.
    saveChartAsPNG(chart,700,500,null,session);
     String URL = request.getContextPath()
     +"/servlet/DisplayChart?filename="+filename;
   %>
  <img src="<%=URL %>" width="700" height="500"
    border="0" usemap="#filename" />
   
 
 
 
   
  </body>
</html>

 

 

 

 


 

 

 

 

 

 

 

 


 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值