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和 ...
随机推荐
- python加速
之前一直用 conda版python, 发现可以直接装intel的numpy了. https://software.intel.com/en-us/articles/installing-the-in ...
- tensorflow函数解析: tf.Session() 和tf.InteractiveSession()
链接如下: http://stackoverflow.com/questions/41791469/difference-between-tf-session-and-tf-interactivese ...
- poj1386单词连接(欧拉欧拉欧拉)
///单词连接,欧拉回路通路都可以(有向图) ///主要构图:比如possibilities就构造p->s的边////题目大意:给你若干个字符串,一个单词的尾部和一个单词的头部相同那么这两个单词 ...
- 使用tomcat方式实现websocket即时通讯服务端讲解
使用tomcat方式实现websocket即时通讯服务端讲解 第一种方案:使用Tomcat的方式实现 tomcat版本要求:tomcat7.0+.需要支持Javaee7 导入javeee-api的ja ...
- Springboot配置注入
springboot中如何将yml 配置文件中配置,在类中注入使用 ①第一种使用@value方式 ################## 配置文件 ######################### d ...
- Opencv笔记(七)——访问与操作像素
一.获取矩阵的元素 1.获取三维矩阵img[i,j]处的元素 (b,g,r) = image[i,j],image大小为:MxNxK. 2.获取三维矩阵的子矩阵的全部元素 newimage = ima ...
- mysql免安装版 win10
1.在官网中下载免安装版:https://dev.mysql.com/downloads/mysql/ 2.解压下载后的文件,新建 data 文件夹和 my.ini 文件 3.打开 my.ini 文 ...
- StartDT AI Lab | 视觉智能引擎之算法模型加速
通过StartDT AI Lab专栏之前多篇文章叙述,相信大家已经对计算机视觉技术及人工智能算法在奇点云AIOT战略中的支撑作用有了很好的理解.同样,这种业务牵引,技术覆盖的模式也收获了市场的良好反响 ...
- L3-016 二叉搜索树的结构 (30 分)
二叉搜索树或者是一棵空树,或者是具有下列性质的二叉树: 若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值:若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值:它的左.右子树也分别 ...
- EF 执行存储过程