jFreeChart初探

【JFreeChart】JFreeChart简介 JFreeChart是一个开源的java图形报表引擎项目,主要用来创建各种各样的图表,这些图表包括:饼图、柱状图(普通柱状图以及堆栈柱状图)、线图、区域图、分布图、混合图、甘特图以及仪表盘等。它可以生成Swing图形、PNG和JPEG图形以及PDF/EPS/SVG等一些矢量图形。 使用JFreeChart构建图表时需要导入一下两个jar包: 核心类包介绍: JFreeChart主要有... 阅读详情




//******************************************
//*             author:rautinee                         *
//*         Email:rautinee@21cn.com        *
//*         http://www.tryitsoft.com                *
//******************************************

jFreeChart也许对大家来说很陌生,她是一款免费的、功能强大的统计图生成工具,可以直接生成PNG,JPG等各式的文件
为我们java项目的开发增加了一部利器。她的英文简介
JFreeChart is a free Java class library for generating charts, including:
pie charts;
line charts and horizontal/vertical bar charts (regular and stacked, with optional 3D-effect);
XY plots and scatter plots;
time series, high/low/open/close charts and candle stick charts;
combination charts;
Pareto charts;
Gantt charts;
bubble charts;
wind plots, meter charts and symbol charts;

正好我最近的一个项目用到她,于是就很粗略的看了一下,现在把它拿出来和大家分享,希望对大家的工作有所
帮助。

本文主要是讲解她在jsp上面的应用。例子采用jsp+javaBean结构实现

准备工作:首先我们需要什么?当然是jFreeChart的package了,可以在她的官方网站上面找到下载链接
http://www.jfree.org/jfreechart/,把包下下来,配置到tomcat当中,然后可以开始我们的Jfreechart之旅
了。

下面我要做的是一个饼状统计图,首先建立javaBean文件

文件名:Tryitshow.java

package com.tryit;

import java.io.*;
import java.awt.Insets;
import java.awt.Font;
import java.io.PrintWriter;
import java.text.SimpleDateFormat;
import java.util.Iterator;
import java.util.Locale;
import java.text.NumberFormat;
import javax.servlet.http.HttpSession;
import org.jfree.data.*;
import org.jfree.chart.*;
import org.jfree.chart.axis.*;
import org.jfree.chart.renderer.VerticalBarRenderer;
import org.jfree.chart.renderer.StandardXYItemRenderer;
import org.jfree.chart.plot.*;
import org.jfree.chart.entity.*;
import org.jfree.chart.tooltips.*;
import org.jfree.chart.urls.*;
import org.jfree.chart.servlet.*;
import org.jfree.chart.TextTitle;
import java.net.URL;

public class Tryitshow
{
    public static String generatePieChart(String infoStr, String titles,HttpSession session, PrintWriter pw)
        {
            String filename = null;
            Font font;
            
            try {
                    //  建立PieDataSet
            DefaultPieDataset data = new DefaultPieDataset();
            String ss[]=infoStr.split(",");
            for (int n=0;n<ss.length;n++)
            {
                String ssPart[]=ss[n].split("#");
                int tt=Integer.parseInt(ssPart[1]);
                String mm=ssPart[0];
                data.setValue(mm,tt);
            }
        
                //  生成chart物件
            PiePlot plot = new PiePlot(data);
            plot.setInsets(new Insets(0, 5, 5, 5));
        
            plot.setToolTipGenerator(new StandardPieToolTipGenerator());
            
            font=new Font("黑体",Font.CENTER_BASELINE,20);//这个地方是设置统计图标题的字体和大小
            
            JFreeChart chart = new JFreeChart("",JFreeChart.DEFAULT_TITLE_FONT, plot, true);
            
            TextTitle tt=new TextTitle(titles);
            tt.setFont(font);
            chart.setBackgroundPaint(java.awt.Color.white);//统计图片的底色
            chart.setTitle(tt);

            //  把生成的文件写入到临时的目录中
            ChartRenderingInfo info = new ChartRenderingInfo(new StandardEntityCollection());
            filename = ServletUtilities.saveChartAsPNG(chart, 500, 300, info, session);
//选择存储成png格式的文件,当然你也可以使用saveChartAsJPEG的方法生成jpg图片

            //  把image map 写入到 PrintWriter
            ChartUtilities.writeImageMap(pw, filename, info);
            pw.flush();
            }
            catch (Exception ex) {
            System.out.println("error:"+ex.getMessage());
            }
            return filename;
            }
    }


接着是jsp文件
<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import = "com.tryit.Tryitshow" %>
<%@ page import = "java.io.PrintWriter" %>
<%@ page import = "java.text.SimpleDateFormat" %>
<%@ page import = "java.text.ParseException" %>
<%@ page import = "java.util.ArrayList" %>
<%@ page import = "java.util.Date" %>
<%@ page import = "java.util.Iterator" %>
<%@ page import = "java.util.Locale" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="">
<META NAME="Keywords" CONTENT="">
<META NAME="Description" CONTENT="">
</HEAD>
<%
String filename = Tryitshow.generatePieChart("本科#100,专科#200","人才学历信息统计",session, new PrintWriter(out));

    String graphURL = request.getContextPath() + "/servlet/DisplayChart?filename=" + filename;
    %>
<BODY>
<img src="<%= graphURL %>" width=500 height=300 border=0 usemap="#<%= filename %>">
</BODY>
</HTML>

ok,大功告成,当然,你可以采用其他方式,比如你可以把DataSet的数据设置在xml文件中,从xml文件读取
统计数据中添加百分比等等,还可以选择生成柱状图、折线图等。

jFreeChart还有很多其他的用法,希望大家可以多多交流。


web.xml文件的配置

<web-app>
  <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>
【JFreeChart】JFreeChart—输出柱形图 如何将数据以柱状图的形式显示出来? 实现过程: 1、获取数据; 2、根据工厂模式生成图形对象,通过获取该图形对象,来进一步获得该图形对象内部的小对象,并对它们的字体等进行设置; 3、将图形放到面板中; 4、构建一个方法,将放置了图形的面板返回出去,当需要使用该面板时只需调用该方法即可(封装); 5、创建一个窗体,将面板放到该窗体中进行显示; 柱形图比饼状图复杂,生成的图标数据需要有两... 阅读详情

相关推荐

JFreeChart初始和下载

JFreeChart初始和下载

私信可回答各种问题~ 2154

JFreeChart的使用

实例一:比较简单的application版本的饼图   package com.test.jfreechart; import org.jfree.chart.ChartFactory; import org.jfree.chart.ChartFrame; import org.jfree.chart.JFreeChart; import org.jfree.data.gene...

y91666的博客 196

Window10 intel realsense D435安装并实现opencv显示realsense读取的彩色和深度数据(QT+openCV+rsD35)

(1)点击"官方指南" 来到下载页,-&gt;最新的稳定版本发布 (本人下的2.16.5,现在最新2.17.0) 不需要做开发,只要下载Intel RealSense Viewer就好,这个就是相机的可视化界面,简洁明了。对应的安装包是Intel.RealSense.Viewer.exe。 本人的毕设要用到深度图做开发,所以安装Intel.RealSense.SDK.exe,SDK...

Pabebe的博客 1万+

JFreeChart使用总结(四)

JFreeChart使用总结 1. JFreeChart简介 JFreeChart是开放源代码站点SourceForge.net上的一个JAVA项目,它主要用来各种各样的图表,这些图表包括:饼图、柱状图(普通柱状图以及堆栈柱状图)、线图、区域图、分布图、混合图、甘特图以及一些仪表盘等等。这些不同式样的图表基本上可以满足目前的要求。JFreeChart是开源项目,可以方便的从其官方网站上获得其源

alvin的博客 1万+

2025年从零开始:构建你的首个ComfyUI工作流-ComfyUI入门教程

然而,由于它拥有众多的插件节点,以及较为复杂的操作流程,学习起来相对困难。以前面搭建的文生图工作流为例,首先点击功能区的【保存】,然后你的浏览器会出来一个弹窗,你可以进行文件命名,点击确定后浏览器会下载该文件,也就是带“json”后缀的文件,这样我们的工作流就打包成一份文件了。思考一下前面说的,节点是不是需要下载安装才能使用,而我们复用别人的工作流,他用的节点你不一定下载了,因为目前有600多个节点,你不可能全部下载了吧,所以我们日后使用别人的工作流,你会经常出现这样的问题。

weixin_59486588的博客 1454

PCB压合原理与工艺全流程深度解析

PCB压合是多层印制电路板制造中的核心工序,其本质并非简单物理叠加,而是高分子树脂流动、玻璃布应力释放、铜箔热膨胀及界面能调控的协同过程。理解压合原理,需掌握温度-压力-时间三维曲线动态关系;优化工艺流程,须兼顾叠板精度、热压参数匹配与冷却策略;关键影响因素如半固化片(PP)选型、铜箔表面处理、设备温场均匀性、结构对称性、环境湿度及操作手法,共同决定层间结合力、翘曲度与孔壁质量。本文围绕PCB压合原理、工艺流程、关键影响因素三大维度展开,融合IPC标准、实测数据与产线案例,为工艺工程师、NPI人员及设备维护

weixin_29191081的博客 253

JFreeChart 学习笔记

目录目录 JfreeChart 的核心对象 制图对象 制图工厂对象 数据集合对象 绘图区对象 PiePlot 类 CategoryPlot 类 XYPlot 类 坐标轴对象 CategoryAxis 类 ValueAxis 类 NumberAxis 类 DateAxis 类 图片渲染对象 JFreeChart 的应用 如何获取图片 创建数据集合与JFreeChart 实例 图表相关属性的设置 JFr

吴杨的博客 7068

深入浅出卡尔曼滤波器算法

深入浅出讲解卡尔曼滤波器的工作原理及其公式推导,讨论卡尔曼滤波器的核心公式所代表的意义及个人的理解。

m0_37835056的博客 1364

解决jfree.chart这个包已经导入,为什么还显示不存在的问题

求助:jfree.chart这个包已经导入,为什么还显示不存在 大神们,我需要用java画图,要用到jfreechart包,于是去官网上下好了 这是官网网址:link. 然后,也导入到库中了(如图),我是用NetBeans写java 然后还是报错程序包org.jfree.chart不存在,这个问题怎么解决啊 麻烦各位好心人了! ...

mutangai1629的博客 5509

诊断CAPL自动化(3)——封装了接收诊断数据的通用CAPL脚本函数库

DiagGetRespPrimitiveSize (获取诊断响应的单个数据) diagGetPrimitiveData (获取诊断返回的所有数据) DiagGetRespParameter(数值类型) DiagGetRespParameter(字符串类型) DiagGetRespParameter(byte数组)

蚂蚁小兵 6218

C#与倍福TwinCAT3通信实战:ADS协议封装与设备变量读写完整源码

倍福(Beckhoff)TwinCAT3 作为工业自动化领域主流的软PLC系统,其内置的ADS(Automation Device Specification)协议是实现上位机与TwinCAT3通信的核心标准。传统ADS通信开发存在门槛高(协议细节复杂)、稳定性差(缺乏统一异常处理)、复用性低(重复编码)等问题。本文基于 C# 技术栈,聚焦“协议封装标准化、变量读写易用化、通信稳定工业化”核心需求,提供一套完整的 ADS 协议封装方案与设备变量读写源码。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 1987

初探JFreeChart

官方网站:http://www.jfree.org/jfreechart/index.php最新版本:jfreechart-1.0.0-rc1一、先介绍一个简单的不能再简单的例子,图片中的各类属性都采用默认值。"text/html;charset=GBK"%>"org.jfree.chart.ChartFactory,org.jfree.chart.JFreeChart,org.jfree.cha

小李专栏 1645

PTP(确时间协议,Precision Time Protocol)时间同步

主时钟定期发送带预估发送时间 t1 的报文(若支持硬件时间戳,实际 t1​ 由后续的Follow_Up报文携带)。所有设备启动后通过协商选举出唯一主时钟(Grandmaster),其余设备自动成为从时钟(Slave)。:从时钟记录接收时间 t2,随后向主时钟发送Delay_Req并记录发送时间 t3​。若使用支持PTP的交换机,可修正报文在交换机内的驻留时间,进一步提升精度。从时钟根据offset调整本地时钟,实现与主时钟同步。动态调整本地时钟,抵消传输延迟和时钟漂移。(或通过BMCA自动当选)。

努力努力努力 1303

JfreeChart(1)——初探

JFreeChart的主要功能就是创建各种各样的图表!可以很方便的表现一些数据!以前学习的一些笔记都是放自己电脑上的,近来突然觉得有时候换电脑什么的想看自己原来的笔记就有点麻烦了,所以决定以后就把笔记都以博客的形式进行发表,这样以后看的时候也好看一点!好了,下面就开始我的JFreeChart的学习了! 使用JFreeChart的整体步骤一般就三个而已,第一步是准备要用来显示的数据,第二步是创

Elim的博客 1万+

基于STM32、HAL库的AD7124-8BCPZ模数转换器ADC驱动程序设计

/ 配置0: 使用内部参考电压(2.5V),增益128,双极性。// 配置通道0: AIN0+和AIN1-,使用配置0和滤波器0。// 100ms采样间隔。// 转换为电压值(使用内部2.5V参考电压)// 构造读命令: 最高位为1表示读,接下来7位是寄存器地址。// 构造写命令: 最高位为0表示写,接下来7位是寄存器地址。// 配置滤波器0: 输出数据率50Hz,后置滤波器4。

corlin6688的博客 528

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

jFreeChart初探(静态应用)

  初学JFreeChart,整理一个例子:(部分来自网页) JFreeChart它主要是用来制作各种各样的图表,这些图表包括:饼图、柱状图(普通柱状图以及堆栈柱状图)、线图、区域图、分布图、混合图、甘特图以及一些仪表盘等等。本文用的是JFreeChart 1.0.2 (根据版本不同需要根据类修改部分代码)下载:http://www.jfree.org/jfreechart/index.html ...

QIAOBING2000ICE的专栏 144

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

初学JFreeChart

步入工作已经有半年多了,发现自己的知识还是很匮乏,所以利用闲余时间学习一点东西,提高一下自己。最近在学习JFreeChart,写一点学习的心得,和大家分享一下。我写bolg是一方面和大家一块分享,另外一方面就是对于只是一点回顾,以后想用的时候,可以随时温习一下。这是我第一次写blog,肯定不会写的很专业,望大家多多包涵。 JFreeChart是一个100%...

98

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

JFreeChart学习录

        近日,由于公司的一个项目需要分析图表,于是就受命开始研究JFreeChart这个开源的Java 类库,由于没有原版的开发指南(需要收费,且是英文版),所以只能通过分析源码和参考代码内部文挡来摸清其内部结构,这对于我这个Java的初学者来说,倒是个很好的学习机会,通过这样一个过程,感觉自己在采用面向对象方法分解问题的功夫上还需要进一步的加深!!

阿文(alvin)的专栏 930

jfreechart中图例显示数据为两遍?

作为一个初学者,在操作jfreechart的时候发现有的图例(legend)

duxinglw的专栏 720

1.JFreeChart安装

本文链接:https://blog.youkuaiyun.com/cnds123321/article/details/89600328 JFreeChart教程目录链接:https://blog.youkuaiyun.com/cnds123321/article/details/89600379 1.JFreeChart安装 要安装JFreeChart,首先需要在系统上安装Java。 一般要用jfreechar...

二木成林 7522

JFreeChart

JfreeChart是用Java开发的开源库,它可以在基于Java的应用程序可用于创建各种各样的图表。通过使用JFreeChart,可以创建2D和3D图表,如饼图,条形图,折线图,XY图和3D图表所有常用的主要类型。

qq_26817225的博客 1527

JfreeChart 散点图

用JfreeChart画散点图  首先,看画图的API,参数有: ChartFactory.createScatterPlot(),其中,有一个xydataset,那么,我们先要知道这个xydataset是什么结构的,再看所需xydataset,散点图,也就是单独画出点,也就是一个二维数据了,x ,y坐标嘛! 那么,先做好准备工作,第一步,拿数据,这就不用啰嗦了,就是得到一个List也好,S

Devil不加V 4206

JFreeChart的总结

因为之前在工作中用到了Echarts这个非常简单易用的图表插件,所以这段时间对图表的相关知识很感兴趣。回想到自己的毕业设计中也用到了图表的显示,当时使用的是JFreeChart,现在看看当时做的真的是不堪入目,虽然功能完成了,但是生成的图表实在是不忍直视。

Earl_yuan的专栏 3372

jfreechart java配置_JFREECHART环境安装配置

[环境:操作系统Centos 7 64-bit3台节点ip 主机名 10.91.99.101 master10.91.99.102 slave110.91.99.103 slave210.91.99.104 slave3 三个节点上已经布署好had本次安装环境如下:JDK:j2sdk-1_4_2_13文件名:j2sdk-1_4_2_13-windows-i586-p.ex...

weixin_32737183的博客 799
上一篇: JFreeChart实例详解
下一篇: JSF环境的配置
系统信息
系统信息 领域专家: 后端开发技术领域 领域专家: 后端开发技术领域
博客等级 码龄23年 2404粉丝 565原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值