Java 报表之JFreeChart(第二讲)

1、利用 JFreeChart 创建按颜色分类的水果销售报表

 1 package com.wcy.chart.bar;
 2
 3 import javax.servlet.http.HttpSession;
 4
 5 import org.jfree.chart.ChartFactory;
 6 import org.jfree.chart.JFreeChart;
 7 import org.jfree.chart.plot.PlotOrientation;
 8 import org.jfree.chart.servlet.ServletUtilities;
 9 import org.jfree.data.category.CategoryDataset;
10 import org.jfree.data.general.DatasetUtilities;
11
12 public class BarChart3 {
13
14     public static String genBarChart(HttpSession session)throws Exception{
15         double[][] data = new double[][]{{1320},{720},{830},{400}};
16         String[] rowKeys = {"苹果","香蕉","橘子","梨子"};
17         String[] columnKeys = {"深圳"};
18         CategoryDataset dataset = DatasetUtilities.createCategoryDataset(rowKeys, columnKeys,data);
19         JFreeChart chart = ChartFactory.createBarChart3D("水果销售统计图", "水果", "销售",
20                 dataset, PlotOrientation.VERTICAL, true, true, true);
21         String fileName = ServletUtilities.saveChartAsPNG(chart, 700, 500, session);
22         return fileName;
23     }
24 }
 1 <%@page import="com.wcy.chart.bar.BarChart3"%>
 2 <%@ page language="java" contentType="text/html; charset=UTF-8"
 3     pageEncoding="UTF-8"%>
 4 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 5 <html>
 6 <head>
 7 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 8 <title>Insert title here</title>
 9 </head>
10 <body>
11 <%
12     String fileName = BarChart3.genBarChart(session);
13 %>
14 <img  src="DisplayChart?filename=<%=fileName %>" width="700" height="500">
15 </body>
16 </html>

2、利用 JFreeChart 创建按颜色分类并且按地区分类水果销售报表

 1 package com.wcy.chart.bar;
 2
 3 import javax.servlet.http.HttpSession;
 4
 5 import org.jfree.chart.ChartFactory;
 6 import org.jfree.chart.JFreeChart;
 7 import org.jfree.chart.plot.PlotOrientation;
 8 import org.jfree.chart.servlet.ServletUtilities;
 9 import org.jfree.data.category.CategoryDataset;
10 import org.jfree.data.general.DatasetUtilities;
11
12 public class BarChart4 {
13
14     public static String genBarChart(HttpSession session)throws Exception{
15         double[][] data = new double[][]{{1390,690,542,630},{529,650,1200,690},{780,450,1300,1120},{890,640,750,500}};
16         String[] rowKeys = {"苹果","香蕉","橘子","梨子"};
17         String[] columnKeys = {"上海","北京","贵州","广州"};
18         CategoryDataset dataset = DatasetUtilities.createCategoryDataset(rowKeys,columnKeys,data);
19         JFreeChart chart = ChartFactory.createBarChart3D("水果销售统计图", "水果", "销售", dataset, PlotOrientation.VERTICAL, true, true, true);
20         String fileName = ServletUtilities.saveChartAsPNG(chart, 700, 500, session);
21         return fileName;
22     }
23 }
 1 <%@page import="com.wcy.chart.bar.BarChart4"%>
 2 <%@ page language="java" contentType="text/html; charset=UTF-8"
 3     pageEncoding="UTF-8"%>
 4 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 5 <html>
 6 <head>
 7 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 8 <title>Insert title here</title>
 9 </head>
10 <body>
11 <%
12     String fileName = BarChart4.genBarChart(session);
13 %>
14 <img  src="DisplayChart?filename=<%=fileName %>" width="700" height="500" border="0">
15 </body>
16 </html>

3、利用 JFreeChart 创建自定义 3D 柱状报表

 1 package com.wcy.chart.bar;
 2
 3 import java.awt.Color;
 4
 5 import javax.servlet.http.HttpSession;
 6
 7 import org.jfree.chart.ChartFactory;
 8 import org.jfree.chart.JFreeChart;
 9 import org.jfree.chart.labels.ItemLabelAnchor;
10 import org.jfree.chart.labels.ItemLabelPosition;
11 import org.jfree.chart.labels.StandardCategoryItemLabelGenerator;
12 import org.jfree.chart.plot.CategoryPlot;
13 import org.jfree.chart.plot.PlotOrientation;
14 import org.jfree.chart.renderer.category.BarRenderer3D;
15 import org.jfree.chart.servlet.ServletUtilities;
16 import org.jfree.data.category.CategoryDataset;
17 import org.jfree.data.general.DatasetUtilities;
18 import org.jfree.ui.TextAnchor;
19
20 public class BarChart5 {
21
22     public static String genBarChart(HttpSession session)throws Exception{
23         double[][] data = new double[][]{{1299,459,980,470},{590,564,300,1130},{1200,357,910,380},{509,1300,650,810}};
24         String[] rowKeys = {"苹果","香蕉","橘子","梨子"};
25         String[] columnKeys = {"上海","北京","厦门","贵州"};
26         CategoryDataset dataset = DatasetUtilities.createCategoryDataset(rowKeys, columnKeys,data);
27         JFreeChart chart = ChartFactory.createBarChart3D("水果销售统计图", "水果", "销售", dataset, PlotOrientation.VERTICAL, true, true, true);
28
29         CategoryPlot plot = chart.getCategoryPlot();
30
31         // 设置网格背景颜色
32         plot.setBackgroundPaint(Color.WHITE);
33         // 设置网格竖线颜色
34         plot.setDomainGridlinePaint(Color.pink);
35         // 设置网格横线颜色
36         plot.setRangeGridlinePaint(Color.pink);
37
38         // 显示每个柱的数值,并修改该数值的字体属性
39         BarRenderer3D renderer=new BarRenderer3D();
40         renderer.setBaseItemLabelGenerator(new StandardCategoryItemLabelGenerator());
41         renderer.setBaseItemLabelsVisible(true);
42
43         renderer.setBasePositiveItemLabelPosition(new ItemLabelPosition(ItemLabelAnchor.OUTSIDE12, TextAnchor.BASELINE_LEFT));
44         renderer.setItemLabelAnchorOffset(10D);
45
46         // 设置平行柱的之间距离
47         renderer.setItemMargin(0.4);
48
49         plot.setRenderer(renderer);
50
51         String fileName = ServletUtilities.saveChartAsPNG(chart, 700, 500, session);
52         return fileName;
53     }
54 }
 1 <%@page import="com.wcy.chart.bar.BarChart5"%>
 2 <%@ page language="java" contentType="text/html; charset=UTF-8"
 3     pageEncoding="UTF-8"%>
 4 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 5 <html>
 6 <head>
 7 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 8 <title>Insert title here</title>
 9 </head>
10 <body>
11 <%
12     String fileName = BarChart5.genBarChart(session);
13 %>
14 <img  src="DisplayChart?filename=<%=fileName %>" width="700" height="500" border="0">
15 </body>
16 </html>

声明:此程序代码本人只是用于学习总结,非原创,如有侵权,联系本人。

时间: 2024-07-29 03:50:44

Java 报表之JFreeChart(第二讲)的相关文章

Java 报表之JFreeChart(第一讲)

1.利用 JFreeChart 创建垂直柱状报表 1 package com.wcy.chart.bar; 2 3 import javax.servlet.http.HttpSession; 4 5 import org.jfree.chart.ChartFactory; 6 import org.jfree.chart.JFreeChart; 7 import org.jfree.chart.plot.PlotOrientation; 8 import org.jfree.chart.ser

面试必看:java面试考点干货精讲视频教程

Java作为目前比较火的计算机语言之一,连续几年蝉联最受程序员欢迎的计算机语言榜首,因此每年新入职Java程序员也数不胜数.很多java程序员在学成之后,会面临着就业的问题.在面试的过程中,面试技巧是一项很重要的能力. 今天要给大家介绍的是一个java经典面试套路精讲视频教程,需要的朋友可以看看,希望能帮助到大家! 课程目录: 第一节. String Stringbuffer Stringbuilder 深度解析第二节. 完美回答面试题Int 与Integer的区别第三节. 以数据结构挖掘集合面

java报表工具FineReport常用函数的用法总结(文本和日期函数)

FineReport是比较常用的java报表开发工具,本文总结了常用函数中的文本和日期函数 文本函数 CHAR CHAR(number):根据指定数字返回对应的字符.CHAR函数可将计算机其他类型的数字代码转换为字符. Number:用于指定字符的数字,介于1Number:用于指定字符的数字,介于165535之间(包括1和65535). 示例: CHAR(88)等于"X". CHAR(45)等于"-". CODE CODE(text):计算文本串中第一个字符的数字代

跟我学《JavaScript高程3》 第二讲,课程笔记

跟我学<JavaScript高程3> 第二讲:第3章 课程制作:bling,兴哥,5年Java,3年前端 课程知识:JavaScript.Html.Css 课程目标:前端体系课程,逐步深入,找到一份前端工作 课程大纲:本书目录结构 适合人群:前端初学者,可以0基础,但要认真,踏实 课程回顾 1.静态项目基本结构:html.css.js.images 2.文件的方式引入一个JavaScript脚本文件:引入方式.引入路径 3.变量编写Hello,world:变量的定义,使用变量. 补充:变量在讲

王家林亲传《DT大数据梦工厂》第二讲Scala函数定义、流程控制、异常处理入门

你想了解大数据,你想成为年薪百万吗?那你还等着什么,快点来吧!跟着王家林老师学习spark大数据 第二讲主要讲了Scala函数定义.流程控制.异常处理入门 函数定义: 关键字(def) 函数名称 参数(参数名称:参数类型):返回内容类型  =  { 函数体 } 注意: Unit:空的返回内容 Scala结束语是不需要写分号 下面一代码为例: //不带参数 Object  ScalaBasics{ def doWhile(){ var line = “” do{ line = readLine()

通达OA 二次开发培训第二讲

本次是通达OA二次开发第二讲,主要介绍了如何在通达OA中进行程序开发,并将开发程序挂接到OA系统中.

FineReport实线java报表填报录入的效果图

Java报表-固定资产(增删改) Java报表-集团財务报表 Java报表-简单自由填报 Java报表-客户跟踪数据回填 Java报表-客户关系复杂填报 Java报表-批量导入 Java报表-批量删除 Java报表-通讯录(自匹配) Java报表-土地出让 Java报表-主从表多源填报

从大数据菜鸟走上大师的历程 第二讲:函数定义,流程控制,异常处理

Scala 第二讲 函数定义,流程控制,异常处理 For 循环  for(左边为单个对象obj  <-  右边为对象集合objs ) for 循环里把右边的对象赋给左边 现在正是学习大数据的最好机遇,不花一分钱就可以成为大数据高手,实现年薪50万的梦想. 王家林的第一个中国梦:免费为全社会培养100万名优秀的大数据从业人员! 如果您有兴趣请点击这个链接进入大数据的学习 http://blog.sina.com.cn/s/blog_8fbd39ee0102vto3.html 如果您确实感觉视频教程

机器学习基石第二讲:learn to answer yes/no

博客已经迁移至Marcovaldo's blog (http://marcovaldong.github.io/) 刚刚完成了机器学习基石的第二讲,主要介绍了机器学习的定义,PLA算法和pocket PLA算法.下面将笔记整理在下面. Perceptron Hypothesis Set 延续前面的信用卡发放问题.银行已有的用户数据可能包括用户的年龄.年薪.工作时长.债务情况等特征信息,我们分别用x1,x2,-,xd来表示,那么对于每一个用户都有一个向量来表示其信息.我们为每一个特征信息分配一个权