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和 ...
随机推荐
- 《Docekr入门学习篇》——Docker仓库harbor
Harbor Harbor仓库介绍 我们在日常Docker容器使用和管理过程中,渐渐发现部署企业私有仓库往往是很有必要的, 它可以帮助你管理企业的一些敏感镜像, 同时由于Docker Hub的下载速度 ...
- TF分布式问题
碰到一个没解决的问题. 用tensorflow 分布式异步更新模式训练模型, 模型中带正则项, 每个batch的损失函数为 \[\lambda \|W\|_1 + \frac 1 {N_j} \sum ...
- 实操windows2008搭建IIS php mysql
一.IIS的安装直接略过 二.主要记录PHP.MYSQL环境的搭建 1.本次环境搭建使用的环境版本号对应如下: 1.PHP:PHP 7.2 (7.2.28) 下载地址:https://windows. ...
- Python上楼梯
假设一段楼梯共n(n>1)个台阶,小朋友一步最多能上3个台阶,那么小朋友上这段楼梯一共有多少种方法. (小朋友真的累,我选择电梯) 大体思路用到了递归,假如说楼梯有12阶,那么11阶时有只有一种 ...
- Mac 终端实现快速定位命令 自动补全目录
基于macOS oh-my-zsh 切换终端主题 incr.zsh 实现快速定位命令 自动补全目录 效果预览 步骤 1.安装 oh-my-zsh sh -c "$(curl -fsSL ht ...
- 编译x64c++出错,errorC1900:P1和P2之间 Il 不匹配问题
搜索了下相关资料,有一个说法是编译x64时本地缺失一些东西,2015安装update3就行. 我的是2013update4,找了下最新的有update5,安装然而并没有什么用. 最后还是重新找对应版本 ...
- CodeForces 990B Micro-World(思维、STL)
http://codeforces.com/problemset/problem/990/B 题意: 有n个细菌,每个细菌的尺寸为ai,现在有以常数k,如果细菌i的尺寸ai大于细菌j的尺寸aj,并且a ...
- IT运维体系
- Invalid package name:a digit canno be the first character in a package segme
发现网上没有关于这个的解决方法 其实这个原因是因为下图红框里的是数字 把默认的这个直接删掉,用英语随便输入一个即可
- ios键盘退出
点击空白处退出键盘 -(void)touchesBegan:(nonnull NSSet<UITouch *> *)touches withEvent:(nullable UIEvent ...