以java project为例,首先需要导入需要的jar包:jcommon-1.0.23.jar, jfreechart-1.0.19.jar.

画饼状图示例:

package com.it.jfchart;

import java.awt.Font;

import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartPanel;
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;
import org.jfree.ui.ApplicationFrame;
import org.jfree.ui.RefineryUtilities;
/**
* jFreeChart画饼状图
* ApplicationFrame是JFreeChart中写好的一个类,使用它就可用一个单独的JFrame来显示图表
*/
public class Mypie extends ApplicationFrame {
// 字体设置
private static final Font font = new Font("simsun",Font.ITALIC,22); public Mypie(String title) {
super(title);
setContentPane(new ChartPanel(getChart()));
} /*
* 封装画图所需的数据集对象DefaultPieDataset
*/
private static DefaultPieDataset getDataset(){
DefaultPieDataset dataset = new DefaultPieDataset();
dataset.setValue("本科生", 50);
dataset.setValue("研究生", 30);
dataset.setValue("博士生", 20);
return dataset;
} /*
* 返回JFreeChart对象
* JFreeChart对中文支持不好, 所有涉及汉字的部分,必须重新设置字体,否则显示乱码
*/
public JFreeChart getChart(){
final DefaultPieDataset dataset = getDataset();
// 有标题,无悬浮提示,无连接(true,false,false)
JFreeChart chart = ChartFactory.createPieChart("XX公司员工学历比例图", dataset,true,false,false); /*
* 重新设置字体
*/
// 重新设置标题字体
chart.setTitle(new TextTitle("XX公司员工学历比例图",font));
// 重新设置图例字体
LegendTitle legend = chart.getLegend();
legend.setItemFont(font);
// 重新设置统计表图像字体
PiePlot plot = (PiePlot) chart.getPlot();
plot.setBackgroundAlpha(0.9f);
plot.setLabelFont(font); return chart;
} // 测试方法
public static void main(String[] args){
Mypie demo = new Mypie("XX公司员工学历比例图");
demo.pack();
RefineryUtilities.centerFrameOnScreen(demo);
demo.setVisible(true);
} }



画柱状图示例:

package com.it.jfchart;

import java.awt.Font;

import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.chart.title.LegendTitle;
import org.jfree.chart.title.TextTitle;
import org.jfree.data.category.DefaultCategoryDataset;
import org.jfree.ui.ApplicationFrame;
import org.jfree.ui.RefineryUtilities;
/**
* JFreeChart画柱状图
*/
public class Mybar extends ApplicationFrame {
// 字体设置
private static final Font font = new Font("simsun",Font.ITALIC,22); public Mybar(String title) {
super(title);
setContentPane(new ChartPanel(getChart()));
} /*
* 封装柱状图所需的数据集对象DefaultCategoryDataset
*/
private static DefaultCategoryDataset getDataset(){
DefaultCategoryDataset dataset = new DefaultCategoryDataset();
dataset.setValue(50,"本科生","本科生");
dataset.setValue(40,"研究生","研究生");
dataset.setValue(30,"博士生","博士生");
return dataset;
} /*
* 返回JFreeChart对象
* JFreeChart对中文支持不好, 所有涉及汉字的部分,必须重新设置字体,否则显示乱码
*/
public JFreeChart getChart(){
final DefaultCategoryDataset dataset = getDataset();
// 有标题,无悬浮提示,无连接(true,false,false)
JFreeChart chart = ChartFactory.createBarChart3D("XX公司员工学历比例图", "学历", "人数", dataset,PlotOrientation.VERTICAL,true,false,false); /*
* 重新设置字体
*/
// 重新设置标题字体
chart.setTitle(new TextTitle("XX公司员工学历比例图",font));
// 重新设置图例字体
LegendTitle legend = chart.getLegend();
legend.setItemFont(font);
// 设置X轴坐标上的文字的字体
chart.getCategoryPlot().getDomainAxis().setTickLabelFont(font);
// 设置X轴坐标标题的字体
chart.getCategoryPlot().getDomainAxis().setLabelFont(font);
// 设置Y轴坐标上的文字的字体
chart.getCategoryPlot().getRangeAxis().setTickLabelFont(font);
// 设置Y轴坐标标题的字体
chart.getCategoryPlot().getRangeAxis().setLabelFont(font); return chart;
} // 测试方法
public static void main(String[] args){
Mybar demo = new Mybar("XX公司员工学历比例图");
demo.pack();
RefineryUtilities.centerFrameOnScreen(demo);
demo.setVisible(true);
} }







以javaweb project为例,除了上述两个jar包,还需要struts2-jfreechart-plugin-2.3.24.1.jar.

struts.xml 需要定义chart结果类型:

<struts>
<package name="default" namespace="/" extends="struts-default">
<!-- 定义chart结果类型 -->
<result-types>
<result-type name="chart" class="org.apache.struts2.dispatcher.ChartResult"/>
</result-types>
...

result配置如下(饼状图):

		<!-- 客户贡献统计图 -->
<action name="contriChart" class="statisreportAction" method="docontriChart">
<result type="chart">
<param name="chart">chart</param>
<param name="height">400</param>
<param name="width">700</param>
</result>
</action>

具体的Action代码如下:

    // 必须加上getChart()方法
    public JFreeChart getChart() {
        return chart;
    } // 客户贡献统计图
public String docontriChart(){
ordHistoryList = srBiz.orderHistoryList(); //获取订单数据
DefaultPieDataset dataset = new DefaultPieDataset();
// 给dataset赋值
for (Orderhistory history : ordHistoryList) {
dataset.setValue(history.getCustomerinfo().getCName(), history.getOTotalaccount());
}
// 实例化chart
chart = ChartFactory.createPieChart("客户贡献统计图", dataset, true, false, false);
// 设置字体
chart.setTitle(new TextTitle("客户贡献统计图",font));
LegendTitle legend = chart.getLegend();
legend.setItemFont(font);
PiePlot plot = (PiePlot) chart.getPlot();
plot.setBackgroundAlpha(0.9f);
plot.setLabelFont(font); return SUCCESS;
}

JSP页面显示(通过click事件来显示统计图):

<%--图片src中写入action名字,执行生成统计图操作 --%>
<div><img id="chart" alt="" src="contriChart" style="display:none; "></div>

js函数:

<script type="text/javascript">
// 显示统计图
function showChart(){
var imgId=document.getElementById("chart");
if(imgId.style.display=="block"){
imgId.style.display="none";
}
else{
imgId.style.display="block";
}
}

JFreeChart插件使用的更多相关文章

  1. JFreeChart插件

    JFreeChart的核心对象. 1. 制图对象 JFreeChart的类是制图对象.常用方法: 方法 说明 Void setAntiAlias(Boolean flag) 设置字体边界模糊 Void ...

  2. 【Java EE 学习 74 下】【数据采集系统第六天】【使用Jfreechart的统计图实现】【将JFreechart整合到项目中】

    之前说了JFreechart的基本使用方法,包括生成饼图.柱状统计图和折线统计图的方法.现在需要将其整合到数据采集系统中根据调查结果生成三种不同的统计图. 一.统计模型的分析和设计 实现统计图显示的流 ...

  3. JFreeChart生成饼形图(3) (转自 JSP开发技术大全)

    JFreeChart生成饼形图(3) (转自 JSP开发技术大全) 14.3 利用JFreeChart生成饼形图 通过JFreeChart插件,即可以生成普通效果的饼形图,也可以生成3D效果的饼形图: ...

  4. 利用JFreeChart生成时序图(6) (转自 JSP开发技术大全)

    利用JFreeChart生成时序图(6) (转自 JSP开发技术大全) 14.6 利用JFreeChart生成时序图 通过JFreeChart插件只能生成普通效果的时序图,利用工厂类ChartFact ...

  5. 利用JFreeChart生成区域图 (5) (转自 JSP开发技术大全)

    利用JFreeChart生成区域图 (5) (转自 JSP开发技术大全) 14.5 利用JFreeChart生成区域图 通过JFreeChart插件只能生成普通效果的区域图,利用工厂类ChartFac ...

  6. 利用JFreeChart生成折线图 (4) (转自 JSP开发技术大全)

    利用JFreeChart生成折线图 (4) (转自 JSP开发技术大全) 14.4 利用JFreeChart生成折线图 通过JFreeChart插件,既可以生成普通效果的折线图,也可以生成3D效果的折 ...

  7. JFreeChart生成饼形图(3)11 (转自 JSP开发技术大全)

    FreeChart生成饼形图(3) (转自 JSP开发技术大全) 14.3 利用JFreeChart生成饼形图 通过JFreeChart插件,即可以生成普通效果的饼形图,也可以生成3D效果的饼形图:如 ...

  8. JFreeChart生成柱形图(2) (转自 JSP开发技术大全)

    JFreeChart生成柱形图(2) (转自 JSP开发技术大全) 14.2 利用JFreeChart生成柱形图14.2.1 利用DefaultCategoryDataset数据集绘制柱形图 通过JF ...

  9. JFreeChart基础(1) (转自 JSP开发技术大全)

    JFreeChart基础(1) (转自 JSP开发技术大全) JFreeChart是一个Java开源项目,是一款优秀的Java图表生成插件,它提供了在Java Application.Servlet和 ...

随机推荐

  1. php的date()函数判断今天是星期几

    d  月份中的第几天,有前导零的 2 位数字 01 到 31 D  星期中的第几天,文本表示,3 个字母 Mon 到 Sun j  月份中的第几天,没有前导零 1 到 31 l  ("L&q ...

  2. Python(os和sys)使用

    Python(os和sys)理解 os模块负责程序与操作系统的交互,提供了访问操作系统底层的接口; sys模块负责程序与python解释器的交互,提供了一系列的函数和变量,用于操控python的运行时 ...

  3. CodeForces 263E Rhombus

    洛谷题目页面传送门 & CodeForces题目页面传送门 给定一个$n$行$m$列的矩阵,第$i$行$j$列为$a_{i,j}$,以及一个常数$s\in\left[1,\left\lceil ...

  4. Properties类(一)

    Java中读写资源文件最重要的类是Properties,功能大致如下: 1. 读写Properties文件 2. 读写XML文件 3. 不仅可以读写上述两类文件,还可以读写其它格式文件如txt等,只要 ...

  5. liblinear中的信赖域算法

    求方程 \(H s = -g\), H是hessian矩阵, g 为梯度, 残量 \(r = -g -Hs\). s的初值为0,理论上,共轭梯度每步迭代使得\(\|s\|\) 单调增加,共轭梯度的迭代 ...

  6. 【shell基础】条件测试

    例1 判断目录是否存在 #!/usr/bin/bash back_dir=/var/mysql_back if ! test -d $back_dir;then mkdir -p $back_dir ...

  7. axios 模拟同步请求

    axios本身没有同步请求,但是我们很多情况下必须得需要同步请求.那么应该怎么做? 上网查了一些资料有人说用es6的 async +  assert 我不知道有没有效果,因为我的功能中是没啥效果的. ...

  8. CorsConfig

    package org.linlinjava.litemall.core.config; import org.springframework.context.annotation.Bean; imp ...

  9. day21-双下eq方法

    class Goods: def __init__(self,name): self.name = name def __eq__(self,other): #self = apple1, other ...

  10. html为什么用雪碧图的优缺点

    CSS Sprite(雪碧图/精灵图) 1          概念解释 将小图标和背景图像合并到一张图片上,然后利用css的背景/定位来显示需要显示的图片部分. 2           优点 ① 减少 ...