JFreeChart的使用示例

示例一,饼图,简单示例:

导入jar,代码文件:

运行结果:

代码:

import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartFrame;
import org.jfree.chart.JFreeChart;
import org.jfree.data.general.DefaultPieDataset;

public class JFreeChartTest
{
    public static void main(String[] args)
    {
        DefaultPieDataset dpd=new DefaultPieDataset(); //建立一个默认的饼图
        dpd.setValue("管理人员", 25);  //输入数据
        dpd.setValue("市场人员", 25);
        dpd.setValue("开发人员", 45);
        dpd.setValue("其他人员", 10);
        
        JFreeChart chart=ChartFactory.createPieChart("某公司人员组织数据图",dpd,true,true,false);
        //可以查具体的API文档,第一个参数是标题,第二个参数是一个数据集,第三个参数表示是否显示Legend,第四个参数表示是否显示提示,第五个参数表示图中是否存在URL
        
        ChartFrame chartFrame=new ChartFrame("某公司人员组织数据图",chart);
        //chart要放在Java容器组件中,ChartFrame继承自java的Jframe类。该第一个参数的数据是放在窗口左上角的,不是正中间的标题。
        chartFrame.pack(); //以合适的大小展现图形
        chartFrame.setVisible(true);//图形是否可见
        
    }
}

示例二,柱状图/直方图

运行结果:

代码:

package com.test.jfreechart;

import java.awt.Font;

import javax.swing.JPanel;

import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.axis.CategoryAxis;
import org.jfree.chart.plot.CategoryPlot;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.chart.title.TextTitle;
import org.jfree.data.category.CategoryDataset;
import org.jfree.data.category.DefaultCategoryDataset;
import org.jfree.ui.ApplicationFrame;

public class JFreeChartTest2 extends ApplicationFrame
{
    public JFreeChartTest2(String title)
    {
        super(title);
        this.setContentPane(createPanel()); //构造函数中自动创建Java的panel面板
    }
    
    public static CategoryDataset createDataset() //创建柱状图数据集
    {
        DefaultCategoryDataset dataset=new DefaultCategoryDataset();
        dataset.setValue(10,"a","管理人员");
        dataset.setValue(20,"b","市场人员");
        dataset.setValue(40,"c","开发人员");
        dataset.setValue(15,"d","其他人员");
        return dataset;
    }
    
    public static JFreeChart createChart(CategoryDataset dataset) //用数据集创建一个图表
    {
        JFreeChart chart=ChartFactory.createBarChart("hi", "人员分布",
                "人员数量", dataset, PlotOrientation.VERTICAL, true, true, false); //创建一个JFreeChart
        chart.setTitle(new TextTitle("某公司组织结构图",new Font("宋体",Font.BOLD+Font.ITALIC,20)));//可以重新设置标题,替换“hi”标题
        CategoryPlot plot=(CategoryPlot)chart.getPlot();//获得图标中间部分,即plot
        CategoryAxis categoryAxis=plot.getDomainAxis();//获得横坐标
        categoryAxis.setLabelFont(new Font("微软雅黑",Font.BOLD,12));//设置横坐标字体
        return chart;
    }
    
    public static JPanel createPanel()
    {
        JFreeChart chart =createChart(createDataset());
        return new ChartPanel(chart); //将chart对象放入Panel面板中去,ChartPanel类已继承Jpanel
    }
    
    public static void main(String[] args)
    {
        JFreeChartTest2 chart=new JFreeChartTest2("某公司组织结构图");
        chart.pack();//以合适的大小显示
        chart.setVisible(true);
        
    }
}

示例三,柱状图/直方图,保存图片文件

代码:

import java.awt.Font;
import java.io.FileOutputStream;
import java.io.OutputStream;

import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartUtilities;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.plot.PiePlot;
import org.jfree.chart.title.LegendTitle;
import org.jfree.chart.title.TextTitle;
import org.jfree.data.general.DefaultPieDataset;

public class JFreeChartTest3
{
    public static void main(String[] args) throws Exception
    {
        JFreeChart chart=ChartFactory.createPieChart("某公司人员组织数据图",getDataset(),true,true,false);
        chart.setTitle(new TextTitle("某公司组织结构图",new Font("宋体",Font.BOLD+Font.ITALIC,20)));
        
         LegendTitle legend=chart.getLegend(0);//设置Legend
         legend.setItemFont(new Font("宋体",Font.BOLD,14));
         PiePlot plot=(PiePlot) chart.getPlot();//设置Plot
         plot.setLabelFont(new Font("隶书",Font.BOLD,16));
         
        OutputStream os = new FileOutputStream("company.jpeg");//图片是文件格式的,故要用到FileOutputStream用来输出。
        ChartUtilities.writeChartAsJPEG(os, chart, 1000, 800);
        //使用一个面向application的工具类,将chart转换成JPEG格式的图片。第3个参数是宽度,第4个参数是高度。
        
        os.close();//关闭输出流
    }

private static DefaultPieDataset getDataset()
    {
        DefaultPieDataset dpd=new DefaultPieDataset(); //建立一个默认的饼图
        dpd.setValue("管理人员", 25);  //输入数据
        dpd.setValue("市场人员", 25);
        dpd.setValue("开发人员", 45);
        dpd.setValue("其他人员", 10);
        return dpd;
    }
}

运行之后,刷新文件:

示例四,JSP页面中显示JFreeChart生成的图

文件结构图:

配置servlet:

<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>/DisplayChart</url-pattern>
    </servlet-mapping>

index.jsp 代码:

<%@ page language="java" contentType="text/html; charset=GB18030"
    pageEncoding="GB18030"%>
    
<%@ page import="org.jfree.data.general.DefaultPieDataset,org.jfree.chart.ChartFactory
,org.jfree.chart.JFreeChart,org.jfree.chart.servlet.*" %>
    
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GB18030">
<title>Insert title here</title>
</head>
<body>
<%

DefaultPieDataset dpd = new DefaultPieDataset();
    
    dpd.setValue("管理人员", 25);
    dpd.setValue("市场人员", 25);
    dpd.setValue("开发人员", 45);
    dpd.setValue("其他人员", 10);
    
    JFreeChart chart = ChartFactory.createPieChart("某公司组织结构图",dpd, true, false, false);
    
    String fileName = ServletUtilities.saveChartAsPNG(chart,800,600,session);
    //ServletUtilities是面向web开发的工具类,返回一个字符串文件名,文件名自动生成,生成好的图片会自动放在服务器(tomcat)的临时文件下(temp)
    
    String url = request.getContextPath() + "/DisplayChart?filename=" + fileName;
    //根据文件名去临时目录下寻找该图片,这里的/DisplayChart路径要与配置文件里用户自定义的<url-pattern>一致

%>
<img src="<%= url %>" width="800" height="600">
</body>
</html>

运行结果:

Ref:

http://www.open-open.com/lib/view/open1365997415828.html

http://www.cnblogs.com/xingyun/archive/2012/02/05/2339237.html

http://www.jfree.org/jfreechart/

http://sourceforge.net/projects/jfreechart/files/

时间: 2024-10-31 03:54:18

JFreeChart的使用示例的相关文章

[转]JFreeChart简介及下载、配置

JFreeChart简介 JFreeChart是完全基于Java语言的开源项目,因此可以使用在Java开发环境中,包括Java应用程序,或者是Java Web应用都没有任何问题.结合iText项目,可将生成的统计图表输出到PDF文件中:结合最新的POI项目,也可以将生成的统计图表输出到Excel文档中. JFreeChart可用于生成各式各样的统计图表,只要开发人员提供符合JFreeChart所需格式的数据,JFreeChart即可自动生成相应的统计图表.JFreeChart可生成饼图(pie

使用 jfreechart 生成 曲线、柱状图、饼状图、分布图 展示到JSP

原文:使用 jfreechart 生成 曲线.柱状图.饼状图.分布图 展示到JSP 源代码下载地址:http://www.zuidaima.com/share/1550463634410496.htm 虽然现在JS做报表和图形展示已经非常普遍和漂亮了,但是不能忽略有jfreechart 这样一种东西! 这些翻阅资料,在看以前写的示例时发现了关于jfreechart 的简单示例,不管怎样发上来分享一下!

JFreeChart与AJAX+JSON+ECharts两种处理方式生成热词统计可视化图表

本篇的思想:对HDFS获取的数据进行两种不同的可视化图表处理方式.第一种JFreeChar可视化处理生成图片文件查看.第二种AJAX+JSON+ECharts实现可视化图表,并呈现于浏览器上.   对此,给出代码示例,通过网络爬虫技术,将上传到HDFS的新浪网新闻信息实现热词统计功能,通过图表的柱状图来显示出来. ------> 目录: 1.JFreeChart可视化处理(生成本地图片) [1]HDFS文件读取 [2]JDFreeChart库应用 2.AJAX+JSON+EChart生成可视化图

JFreeChart学习

一.步骤: 创建数据集(准备数据) 根据数据集生成JFreeChart对象,并对其做相应的设置(标题,图例,x轴,Y轴,对象渲染等) 将JFreeChart对象输出到文件或者Servlet输出流等 二.具体举例 饼状图 示例代码: package com.lky.experiment; import java.awt.Color; import java.awt.Dimension; import java.awt.Font; import java.awt.Toolkit; import ja

JFreeChart入学教程

JFreeChart入学教程 2011-08-08 14:55:19|  分类: 技术篇 |举报 |字号 订阅 JFreeChart 是一组功能强大.灵活易用的Java绘图API,使用它可以生成多种通用性的报表,包括柱状图.饼图.曲线图.甘特图等.它能够用在Swing和Web等 中制作自定义的图表或报表,并且得到广泛的应用.本文将通过引领读者学习在JFreeChart中饼图.柱状图和曲线图的进阶应用,来达到熟练使用 JFreeChart的目的. 一.下载与环境配置 1. 下载JFreeChart

深入探究JFreeChart

1 简介 JFreeChart 是 SourceForge.net 上的一个开源项目,它的源码和 API 都可以免费获得. JFreeChart 的功能非常强大,可以实现饼图 ( 二维和三维 ) ,  柱状图  ( 水平 , 垂直 ), 线图 , 点图 , 时序图 , 甘特图 ,  股票行情图 , 混和图 ,  温度计图 ,  刻度图等常用商用图表,  图形可以导出成 PNG 和 JPEG 格式,同时还可以与 PDF 和 EXCEL 关联,支持对图形的放大.缩小,支持常见图形的 3D 显示. 2

JFreeChart的使用

JFreeChart一个免费的Java图表库.JFreeChart支持饼图(2D和3D),条形图(水平和垂直,整齐堆叠),线图,散点图,时序图, 高低的开闭图,烛台图,甘特图,结合地块,温度计,刻度盘和更多.JFreeChart可以在应用程序中使用,小程序,servlet和JSP. 由于JFreeChart可以生成的图像很多,在此简要列举三个(饼图,柱状图,曲线图)作为入门,学习如何整合Struts如何显示在JSP中 一.搭建Struts 首先要有一个搭建好的Struts框架,在此基础上我们就可

图形统计简单示例

1). 加入 jar 包: Struts2中的包: struts2-jfreechart-plugin-2.3.15.3.jar jfreechart-1.0.13中的包: jcommon-1.0.16.jar jfreechart-1.0.13.jar iText-2.1.5.jar 2). 具体使用参见: struts-2.3.15.3-all/struts-2.3.15.3/docs/WW/docs/jfreechart-plugin.html I:在目标action中加入以下代码 pri

JFreeChart 之柱状图

JFreeChart 之柱状图 一.JFreeChart 简介 JFreeChart是JAVA平台上的一个开放的图表绘制类库.它完全使用JAVA语言编写,是为applications, applets, servlets 以及JSP等使用所设计.JFreeChart可生成饼图(pie charts).柱状图(bar charts).散点图(scatter plots).时序图(time series).甘特图(Gantt charts)等等多种图表,并且可以产生PNG和JPEG格式的输出,还可以