JFreeChart插件使用
以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插件使用的更多相关文章
- JFreeChart插件
JFreeChart的核心对象. 1. 制图对象 JFreeChart的类是制图对象.常用方法: 方法 说明 Void setAntiAlias(Boolean flag) 设置字体边界模糊 Void ...
- 【Java EE 学习 74 下】【数据采集系统第六天】【使用Jfreechart的统计图实现】【将JFreechart整合到项目中】
之前说了JFreechart的基本使用方法,包括生成饼图.柱状统计图和折线统计图的方法.现在需要将其整合到数据采集系统中根据调查结果生成三种不同的统计图. 一.统计模型的分析和设计 实现统计图显示的流 ...
- JFreeChart生成饼形图(3) (转自 JSP开发技术大全)
JFreeChart生成饼形图(3) (转自 JSP开发技术大全) 14.3 利用JFreeChart生成饼形图 通过JFreeChart插件,即可以生成普通效果的饼形图,也可以生成3D效果的饼形图: ...
- 利用JFreeChart生成时序图(6) (转自 JSP开发技术大全)
利用JFreeChart生成时序图(6) (转自 JSP开发技术大全) 14.6 利用JFreeChart生成时序图 通过JFreeChart插件只能生成普通效果的时序图,利用工厂类ChartFact ...
- 利用JFreeChart生成区域图 (5) (转自 JSP开发技术大全)
利用JFreeChart生成区域图 (5) (转自 JSP开发技术大全) 14.5 利用JFreeChart生成区域图 通过JFreeChart插件只能生成普通效果的区域图,利用工厂类ChartFac ...
- 利用JFreeChart生成折线图 (4) (转自 JSP开发技术大全)
利用JFreeChart生成折线图 (4) (转自 JSP开发技术大全) 14.4 利用JFreeChart生成折线图 通过JFreeChart插件,既可以生成普通效果的折线图,也可以生成3D效果的折 ...
- JFreeChart生成饼形图(3)11 (转自 JSP开发技术大全)
FreeChart生成饼形图(3) (转自 JSP开发技术大全) 14.3 利用JFreeChart生成饼形图 通过JFreeChart插件,即可以生成普通效果的饼形图,也可以生成3D效果的饼形图:如 ...
- JFreeChart生成柱形图(2) (转自 JSP开发技术大全)
JFreeChart生成柱形图(2) (转自 JSP开发技术大全) 14.2 利用JFreeChart生成柱形图14.2.1 利用DefaultCategoryDataset数据集绘制柱形图 通过JF ...
- JFreeChart基础(1) (转自 JSP开发技术大全)
JFreeChart基础(1) (转自 JSP开发技术大全) JFreeChart是一个Java开源项目,是一款优秀的Java图表生成插件,它提供了在Java Application.Servlet和 ...
随机推荐
- 201512-1 数位之和 Java
思路: mod 10获取最低位,除以10去掉最低位 import java.util.Scanner; public class Main { public static void main(Stri ...
- 吴裕雄--天生自然MySQL学习笔记:MySQL简介
MySQL 是最流行的关系型数据库管理系统,在 WEB 应用方面 MySQL 是最好的 RDBMS(Relational Database Management System:关系数据库管理系统)应用 ...
- Java之同步代码块处理继承Thread类的线程安全问题
package com.atguigu.java; /** *//** * 使用同步代码块解决继承Thread类的方式的线程安全问题 * * 例子:创建三个窗口卖票,总票数为100张.使用继承Thre ...
- Win 10 Ctrl + Space 冲突
1. 说明 在IDE里面Ctrl + space 会与 Windows 输入法相互冲突,并且用Ctrl + Space 切换中英文也很不常用(常用直接shift切换). 2. 操作 控制面板——时钟. ...
- 1016D.Vasya And The Matrix#矩阵存在
题目出处:http://codeforces.com/contest/1016/problem/D #include<iostream> #define ll long long int ...
- zxing生成二维码转base64 img直接显示 Image对象转Base64码(java)
public static String encodeToBase64(String content){ MultiFormatWriter multiFormatWriter = new Multi ...
- 计量经济与时间序列_滞后算子和超前算子L的定义
1. 为了使计算简单,引入滞后算子的概念: 2. 定义LYt = Yt-1 , L2Yt = Yt-2,... , LsYt = Yt-s. 3. 也就是把每一期具体滞后哪一期的k提到L的 ...
- gcc -S xx
编译器的核心任务是把C程序翻译成机器的汇编语言(assembly language).汇编语言是人类可以阅读的编程语言,也是相当接近实际机器码的语言.由此导致每种 CPU 架构都有不同的汇编语言. 实 ...
- matlab 启动图标
matlab 启动图标 cat /usr/share/applications/Matlab.desktop [Desktop Entry] Type=Application Name=Matlab ...
- Gre封装
在防火墙上连 云时,可以用g0/0/0 在防火墙上不连 云时,一定不用0/0/0 !!!!!!!!! 交换机什么都不配置. FW2: interface GigabitEthernet0/0/0 u ...