JFreeChart是JAVA平台上的一个开放的图表绘制类库。它完全使用JAVA语言编写,是为applications, applets, servlets 以及JSP等使用所设计。JFreeChart可生成饼图(pie charts)、柱状图(bar charts)、散点图(scatter plots)、时序图(time series)、甘特图(Gantt charts)等等多种图表,并且可以产生PNG和JPEG格式的输出,还可以与PDF和EXCEL关联。

  • 使用JFreeChart先要导入两个包jcommon-1.0.23.jarjfreechart-1.0.19.jar
  • 下载地址

代码

  • jsp部分
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ page language="java" import="java.util.*" pageEncoding="GBK"%>
<%@ page import="org.jfree.chart.ChartFactory" %>
<%@ page import="org.jfree.chart.JFreeChart" %>
<%@ page import="org.jfree.data.category.DefaultCategoryDataset" %>
<%@ page import="org.jfree.chart.plot.PlotOrientation" %>
<%@ page import="org.jfree.chart.entity.StandardEntityCollection" %>
<%@ page import="org.jfree.chart.ChartRenderingInfo" %>
<%@ page import="org.jfree.chart.servlet.ServletUtilities" %>
<%@ page import="org.jfree.data.category.DefaultCategoryDataset"%>
<%@ page import="org.jfree.chart.StandardChartTheme"%>
<%@ page import="java.awt.Font"%>
<%@ page import="younghd.MyDataBase" %>
<%@ page import="java.sql.ResultSet" %>
<%@ page import="java.sql.SQLException" %>
<%@ page import="org.jfree.data.general.DefaultPieDataset" %><%StandardChartTheme standardChartTheme = new StandardChartTheme("CN");        //创建主题样式standardChartTheme.setExtraLargeFont(new Font("隶书", Font.BOLD, 20));      //设置标题字体standardChartTheme.setRegularFont(new Font("微软雅黑", Font.PLAIN, 15));      //设置图例的字体standardChartTheme.setLargeFont(new Font("微软雅黑", Font.PLAIN, 15));       //设置轴向的字体ChartFactory.setChartTheme(standardChartTheme);                            //设置主题样式DefaultCategoryDataset dataset1=new DefaultCategoryDataset();             //绘制柱状图的数据结构DefaultPieDataset dpd = new DefaultPieDataset();                      //绘制饼状图的数据结构//从数据库中获得数据
//饼状图dpd.setValue(名称, 数量);
//柱状图为dataset1.addValue(数量,名称,月份);MyDataBase db=new MyDataBase();String sql="SELECT * FROM phone.num; ";ResultSet rs= null;try {rs = db.inputSQL(sql);while(rs.next()){int count=rs.getInt(1);String name=rs.getString(2);String month=rs.getString(3);dataset1.addValue(count,name,month);dpd.setValue(name, count);}} catch (SQLException e) {e.printStackTrace();}db.close();//创建柱状图JFreeChart组件的图表对象JFreeChart chart=ChartFactory.createBarChart3D("手机销售情况",        //图表标题"季度",              //x轴的显示标题"销量(万台)",      //y轴的显示标题dataset1,           //数据集PlotOrientation.VERTICAL,//图表方向(垂直)true,       //是否包含图例false,      //是否包含提示false       //是否包含URL);ChartRenderingInfo info = new ChartRenderingInfo(new StandardEntityCollection());String fileName=ServletUtilities.saveChartAsPNG(chart,370,240,info,session);String url=request.getContextPath()+"/servlet/DisplayChart?filename="+fileName;//创建饼状图的JFreeChart组件的图标对象JFreeChart chart1 = ChartFactory.createPieChart("手机销售情况的百分比",dpd, true, false, false);String fileName1 = ServletUtilities.saveChartAsPNG(chart1,370,240,session);//ServletUtilities是面向web开发的工具类,返回一个字符串文件名,文件名自动生成,生成好的图片会自动放在服务器(tomcat)的临时文件下(temp)String url1 = request.getContextPath() + "/servlet/DisplayChart?filename=" + fileName1;//根据文件名去临时目录下寻找该图片,这里的/DisplayChart路径要与配置文件里用户自定义的<url-pattern>一致
%><html>
<head><title>绘制柱形图和饼状图</title>
</head>
<body topmargin="0">
<table width="100%"  border="0" cellspacing="0" cellpadding="0"><tr><td>&nbsp;<img src="<%=url %>"></td></tr><tr><td>&nbsp;<img src="<%=url1 %>"></td></tr>
</table>
</body>
</html>
  • web.xml配置servlet的路由地址
 <servlet><servlet-name>DisplayChart</servlet-name><servlet-class>org.jfree.chart.servlet.DisplayChart</servlet-class></servlet><servlet-mapping><servlet-name>DisplayChart</servlet-name><url-pattern>/servlet/DisplayChart</url-pattern></servlet-mapping>
  • 运行结果

JFreeChart的简单使用相关推荐

  1. 利用JFreeChart生成简单柱状图(Java)

    1 package barchartdemo1; 2 3 import <a href="http://lib.csdn.net/base/javaee" class='re ...

  2. JFreeChart的简单图表的制作------柱形图

    最近由于网站项目中要用到报表,之前没有学过,所以今天特地稍微的学习了一下,我用JFreeChart来实现的,JFreeChart网上的资源不是那么的多,因为它的jar包免费提供但是文档确实收费的,下面 ...

  3. JFreeChart的简单应用及乱码解决

    一.JFreeChart介绍: JFreeChart是JAVA平台上的一个开放的图表绘制类库.它完全使用JAVA语言编写,是为applications, applets, servlets 以及JSP ...

  4. 使用jfreechart来创建一个简单的柱状图

    使用jfreechart来创建一个简单的柱状图 代码如下 package com.jfreechart;import java.io.*; import org.jfree.data.category ...

  5. 使用jfreechart来创建一个简单的饼图

    使用jfreechart来创建一个简单的饼图 代码如下 package com.jfreechart;import java.io.*; import org.jfree.data.general.D ...

  6. 用最简单的方式整合JFreechart和Structs并修改背景色

          JFreeChart是何物?熟悉java web 编程的朋友们不会陌生,它是JAVA平台上的一个开放的图表绘制类库.它完全使用JAVA语言编写,是为applications, applet ...

  7. JFreeChart简单介绍及用法(入门)

    (学习留存,如有侵权,请告知,立刻删除!) 1.jfreechart简单介绍以及jar包下载 首先了解JFreeChart是什么,它是JAVA平台上的一个开源报表系统(开放的图表绘制类库),通过它可以 ...

  8. 报表应用系列——图表JFreeChart: 第 4 章 折线图

    双击代码全选 1 2 3 4 5 DefaultCategoryDataset dataset = new DefaultCategoryDataset(); dataset.addValue(100 ...

  9. Open Flash Chart组件的使用 及 与 jfreechart, FusionCharts 的比较

    http://crabdave.javaeye.com/blog/189653 Open Flash Chart组件的使用 简介 OpenFlashChart是一个开源的报表制作组件,该组件能够自动生 ...

  10. java 柱状图下载_(JFreeChart)Java图表制作

    (JFreeChart)Java图表制作软件时一个灵活的设计,很容易扩展,和目标服务器端和客户端应用程序;,支持多种图表类型. 输出类型也是多样化.包括Swing组件.图像文件(包括PNG和JPEG) ...

最新文章

  1. python进制表示方法_python 16进制表示什么
  2. openvn客户端连接配置(ubnutu)
  3. ssh连接服务器出现:ssh: connect to host 192.168.1.107 port 22: Connection refused 的解决方法
  4. ubuntu 设置分辨率 亲测可用 转载的
  5. 统计平方和三元组的数目
  6. 40个经典单片机实验_太经典啦!单片机常用的14个C语言算法(附详细代码)
  7. Python数据分析、挖掘常用工具
  8. 三星note8android 9.0,三星S9/S9+计划明天推送安卓9.0正式版、S8/S8+、Note8下周推测试版...
  9. java rsa密钥转pkcs8_openssl RSA密钥格式PKCS1和PKCS8相互转换
  10. linux vi恢复文件怎么打开文件,Linux上vi编辑文件非正常退出后文件恢复
  11. SpringBoot整合MyBatis(七)
  12. Draco嵌入式AI开发板使用手册V0.1.1
  13. [人生感悟]在平凡中蜕变,我的2014
  14. 微信小程序数据数据绑定显示NaN
  15. 付费入群怎么做_微信群怎么设置付费才可以进入
  16. 市内移出版本2.0(1、一页显示15条。2、增加控制标志。3、打印表格时绑定的list的优化。4、保存迁出登记信息时根据业务流水号判断增加还是修改。5、统一管理常量)
  17. 微信语音技术原理_干货 | 2 分钟论文:语音生成表情包背后的技术原理
  18. 代数与逻辑:作业三 贝叶斯决策
  19. 如何从R和Gmail发送电子邮件
  20. 2020 ACM-ICPC澳门区域赛 B Boring Problem 主元法

热门文章

  1. HTML 标签参考手册:按字母顺序排列 HTML 标签
  2. python精通 epub_跟老齐学Python:从入门到精通[azw3+epub+mobi][8.59MB]
  3. CASS 10.1.6 安装教程
  4. 分组卷积和空洞卷积总结
  5. HTTP报文-请求方式
  6. TCP/IP框架总结
  7. 吴裕雄--天生自然 高等数学学习:函数展开成幂级数
  8. java和是10的10次方的素数,10的11次方之内相邻两素数的最大差值
  9. 使用微信企业号发送工资条教程
  10. 我说CMM2.0之:风险与机会管理