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和 ...
随机推荐
- UML-如何画操作契约?
1.在编写契约过程中,发现之前的领域模型不对,此时是否需要修改? 需要修改.包括:概念类.属性.关联.这就是不断迭代和进化 2.用例中复杂场景里的状态变化细节,描述过多导致用例臃肿,让人看不下去,因此 ...
- CocoaPods-Alcatraz插件
Alcatraz:Xcode的插件管理工具,可通过它添加CocoaPods插件 下载地址:https://github.com/alcatraz/Alcatraz 建议: 不提倡通过终端命令下载Alc ...
- Ivory Coast Map
Fun Facts about Cote d'Ivoire The Republic of Cote d'Ivoire (previously known as the Ivory Coast) is ...
- 是时候写个自己的dialog了
组件下载地址:http://pan.baidu.com/s/1pJFVfej 最近做的项目需要用到对话框,但是原生的弹出框你是知道的.如果有时间,还是自己尝试一下,也是可以的. 一个简单图 里面的输入 ...
- session和token区别
分布式系统认证/授权目前分布式系统存在两种常用的认证授权方式:分布式session和token 1.session的概念 session中存放登录用户的个人信息,创建session时,随机生成一个se ...
- python类的继承、多继承及其常用魔术方法
继承 一个类可以派生出一个子类,这个子类可以使用父类的属性及方法,也可以在父类的基础上添加自己的独特属性或方法.属性和方法的继承的顺序是先从自己开始,找不到再去找父类,父类没有再找父类的父类,其尽头就 ...
- 分享一套好看的PyCharm Color Shceme 配色方案
配色方案图1 点击可查看大图 (color shceme 配色文件下载链接已经放在文末) 配色方案图2 配色方案图3 picture1 picture2 整体效果 下载链接 https://files ...
- Python笔记_第一篇_面向过程_第一部分_6.条件控制语句(if)
Python正如其他语言一样存在两种常用的逻辑判断体(也叫结构化程序设计).所谓逻辑判断体是通过你想要完成的编程思路,通过在逻辑判断体中的相互判断和作用得到你想要的结果.逻辑判断体也叫控制语句,Pyt ...
- Tire树(字典树)
from:https://www.cnblogs.com/justinh/p/7716421.html Trie,又经常叫前缀树,字典树等等.它有很多变种,如后缀树,Radix Tree/Trie,P ...
- windows系统下的渗透测试神器 -pentestbox
Pentestbox介绍 PentestBox官网:https://pentestbox.org/zh/ 这是一个运行在windows环境下的终端,集成了绝大部分渗透测试所需要的环境 如python2 ...