直接生成3D柱状图:
public class Report {
public static void main(String[] args) {
// 创建一个柱状图
DefaultCategoryDataset dataset = new DefaultCategoryDataset();
// 装载数据
dataset.setValue(6, "Profit", "Jane");
dataset.setValue(3, "Profit2", "Jane");
dataset.setValue(7, "Profit", "Tom");
dataset.setValue(6, "Profit2", "Tom");
dataset.setValue(8, "Profit", "Jill");
dataset.setValue(9, "Profit2", "Jill");
dataset.setValue(5, "Profit", "John");
dataset.setValue(8, "Profit2", "John");
dataset.setValue(12, "Profit", "Fred");
dataset.setValue(11, "Profit2", "Fred");
// 产生柱状图
// JFreeChart chart =
// ChartFactory.createXYLineChart("标题","x轴标志","y轴标志","设置数据"
// ,"设置图形显示方向",是否显示图形,是否进行提示,是否配置报表存放地址);
// 图形显示方向:
// (1)HORIZONTAL:横向显示图形
// (2)VERTICAL:纵向显示图形
// 3D柱状图
JFreeChart chart = ChartFactory.createBarChart3D("销售统计图", "Salesman",
"Profit", dataset, PlotOrientation.VERTICAL, true, true, false);
try {
// // 创建图形显示面板
// ChartFrame cf = new ChartFrame("柱状图",chart);
// cf.pack();
// // 设置图片大小
// cf.setSize(500,300);
// // 设置图形可见
// cf.setVisible(true);
// 保存图片到指定文件夹
ChartUtilities.saveChartAsJPEG(new File("C:\\BarChart.jpg"), chart,
500, 300);
} catch (Exception e) {
System.err.println("Problem occurred creating chart.");
}
}
}
public class JFreeReport {
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
Connection conn = DriverManager
.getConnection("jdbc:microsoft:sqlserver://localhost:1433;User=sa;Password=;DatabaseName=library");
Statement stmt = conn.createStatement();
ResultSet rs = stmt
.executeQuery("select bookType, bookCount=count(*) from books group by bookType");
//第2步,从ResultSet得到CategoryDataset
DefaultCategoryDataset dataset = new DefaultCategoryDataset();
while (rs.next()) {
String bookType = rs.getString("bookType");
int bookCount = rs.getInt("bookCount");
//这个例子并不够好,因为这里所有的数据共享了同一个维:“Count”。
//所以它实际上只是一个一维表:以bookType为维,以bookCount为值
//Count维其实并没有起到任何作用
//文档《使用 JFreeChart来创建基于web的图表》中的直方图才是二维表的好例子
dataset.setValue(bookCount, "Count", bookType);
}
/*
JfreeChart也提供了直接从Datasource/Connection
中获得Dataset的JDBCDataset,在本例中可以改用这个类
*/
//第3步,从Dateset中创建Chart
JFreeChart chart = ChartFactory.createBarChart("各种类别的书籍的册数", "类别",
"册数", dataset, PlotOrientation.VERTICAL, true, true, false);
//最后一步,导出图片到WEB
ChartUtilities.writeChartAsJPEG(response.getOutputStream(), chart,
640, 370);
//640和370分别代表Chart的宽度和高度
//其实可以根据ResultSet的行数来确定它的宽度
//根据数据的最大值来确定它的高度
//如果把Chart 放到报表中,就会失去这个灵活性
}
分享到:
相关推荐
JfreeChart学习总结JfreeChart学习总结
jFreeChart学习总结
最近对JFreeChart进行了一段时间的学习,现在和大家分享一些基本资料和例子,希望对大家有帮助~
NULL 博文链接:https://virgoooos.iteye.com/blog/192513
如果你还在java EE 门口徘徊,常用开发组件介绍>将是你最好的向导;如果你已经入门了,那恭喜你,你将更容易从全局上把握自己的学习方向...
jfreechart 心得总结 例子 学习之必须
JFreeChart学习,总结文档,有单柱状图的例子,也有多柱状图的例子,有饼图,可以分割,有多种曲线图的种类,学习JFreeChart的好资料。
JFreeChart 总结 笔记 还有api。是我学习时的笔记和找到的资料的整合
自己总结的jfreechart学习应用的demo
自己最近学习了JfreeChart的使用,觉得这个冬冬的功能非常强大,总结一下。主要介绍JfreeChart生成图片的几种方式 先从网上找点介绍。 我QQ 873334674 可以交流一下
自己最近学习了JfreeChart的使用,觉得这个冬冬的功能非常强大,总结一下。主要介绍JfreeChart生成图片的几种方式
我通过一个星期的对jfreechart的深入学习,总结了这个文档,期望能够对需要用到它的朋友们有所帮助!
闲暇之余,学习了一下jfreechart图表生成,结合大虾们的著作,小弟进行了系统的总结,真是获益匪浅,这里推荐给小伙伴们,有需要的朋友可以参考下。
Java面试题 最小函数依赖 在数据库中实现base64编码和解码 java servlet总结 java的时间操作 画Web流程图的一点心得 深入Java核心 Java内存分配原理精讲 JAVA调用存储过程详解 经典SQL语句大全 使用jfreechart + ...
javaPPT 从入门到精通 从基础到框架 70个PPT 1.初识java 2.变量、数据类型和运算符和表达式 3运算符和程序流程结构 4.数组 5.类和对象 6.字符串 ...69 在线培训:JFreeChart 70 指导学习:课程总复习
你把解决某类问题的方法总结归纳到理论高度,那就是模式。??Alexander给出的经典定义是:每个模式都描述了一个在我们的环境中不断出现的问题,然后描述了该问题的解决方案的核心。通过这种方式,你可以无数次地使用...