- 浏览: 171371 次
- 性别:
文章分类
最新评论
-
18335864773:
推荐用 pageoffice 导出 word ,不需要另存 x ...
java导出含图片的word -
lfyssm:
GOOD
JAVA 调用SAP端接口 -
yixi2166:
写的真好 有帮助
JAVA 调用SAP端接口 -
QQ1145306946:
能不能加你的QQ呢?有几个问题想问你的,呵呵
回答“QQ1145306946”提的问题“jsp 勾选数据添加到另一个页面” -
康敏栋:
QQ1145306946 写道请问最后的代码function ...
回答“QQ1145306946”提的问题“jsp 勾选数据添加到另一个页面”
网上找了很多拼成的,自己也添加了一些东西,所以此处就不将转载的链接地址拷出来。
首先如果项目用到了struts,那么在web.xml和jsp中都加上.servlet,如果不加的话它会看成是.action的形式,所以到时候会显示不出图片,待会代码中会注明这点。
以下代码自己测试通过、
1.后台BarChartDemo,其中getDataSet2方法里面注释的是原作者的代码,此处将我加的代码及导入的包去掉就行。此处直接运行一下在D盘和E盘就可以生成图片,两种方法在ganarateFruitChart()中写了
2.jsp页面,将jsp:directive.page 导入换成自己路径
3.web.xml加上以下,里面DisplayChart也得加上servlet,和jsp里面一致
如果是用的tomcat,那么所生成的临时图片都在tomcat目录中temp文件中,每次点击进入页面就会生成图片,时间一久tomcat中那这些没用的图片就会很多。得想办法删了,114行我注释的这句话session.removeAttribute("JFreeChart_Deleter");//将tomcat中temp的统计图片删除
这个就是删除生成的临时图片,但也局限性,就如这jsp中如果有三个统计,分开了每次跑后台,那么在后台每次都执行session.removeAttribute("JFreeChart_Deleter"),这样就会每次将前面的所生成的图片删除,那么三次跑后台到最后就只有最后一张图片了,所以尽量只走一次后台,或者后台整合到一个方法中,前台页面就一个url.如果确实得分开来用几个统计,那可用bat脚本将temp里面的临时图片删除(个人推荐这种方法),见http://liangjie5305579-126-com.iteye.com/admin/blogs/1743824.
首先如果项目用到了struts,那么在web.xml和jsp中都加上.servlet,如果不加的话它会看成是.action的形式,所以到时候会显示不出图片,待会代码中会注明这点。
以下代码自己测试通过、
1.后台BarChartDemo,其中getDataSet2方法里面注释的是原作者的代码,此处将我加的代码及导入的包去掉就行。此处直接运行一下在D盘和E盘就可以生成图片,两种方法在ganarateFruitChart()中写了
package com.jw.magicbpm.action.officebusinessmanage; import java.awt.Color; import java.awt.Font; import java.awt.RenderingHints; import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.PrintWriter; import java.util.List; import javax.servlet.http.HttpSession; import org.jfree.chart.ChartFactory; import org.jfree.chart.ChartRenderingInfo; import org.jfree.chart.ChartUtilities; import org.jfree.chart.JFreeChart; import org.jfree.chart.StandardChartTheme; import org.jfree.chart.axis.CategoryAxis; import org.jfree.chart.entity.StandardEntityCollection; import org.jfree.chart.plot.CategoryPlot; import org.jfree.chart.plot.PlotOrientation; import org.jfree.chart.servlet.ServletUtilities; import org.jfree.data.category.CategoryDataset; import org.jfree.data.category.DefaultCategoryDataset; import org.jfree.data.general.DefaultPieDataset; import org.jfree.data.general.PieDataset; import com.jw.magicbpm.basecommon.db.DbSessionFactory; import com.jw.magicbpm.model.officebusinessmanage.B_V_Ufp_PeopleAgeStatistics; public class BarChartDemo { /** * 饼状图 */ public static String generatePieChart(HttpSession session, PrintWriter pw, int w, int h) { String filename = null; handleGarbledAndFont();//设置乱码和字体 PieDataset dataset = getDataSet(); JFreeChart chart = ChartFactory.createPieChart3D("水果产量图", // 图表标题 dataset, // 数据集 true, // 是否显示图例 false, // 是否生成工具 false // 是否生成URL链接 ); chart.setBackgroundPaint(Color.pink); try { /*------得到chart的保存路径----*/ ChartRenderingInfo info = new ChartRenderingInfo( new StandardEntityCollection()); filename = ServletUtilities.saveChartAsPNG(chart, w, h, info, session); /*------使用printWriter将文件写出----*/ ChartUtilities.writeImageMap(pw, filename, info, true); pw.flush(); } catch (IOException e) { e.printStackTrace(); } return filename; } /** * 柱状图 * @throws Exception */ public static String generateBarChart(HttpSession session, PrintWriter pw, int w, int h) throws Exception { String filename = null; handleGarbledAndFont();//设置乱码和字体 CategoryDataset dataset = getDataSet2(); JFreeChart chart = ChartFactory.createBarChart3D("干部年龄统计图", // 图表标题 "年龄", // 目录轴的显示标签 "人数", // 数值轴的显示标签 dataset, // 数据集 PlotOrientation.VERTICAL, // 图表方向:水平、垂直 true, // 是否显示图例(对于简单的柱状图必须是false) false, // 是否生成工具 false // 是否生成URL链接 ); Font labelFont = new Font("SansSerif", Font.BOLD, 9); CategoryPlot categoryplot = (CategoryPlot) chart.getPlot(); CategoryAxis domainAxis = categoryplot.getDomainAxis(); domainAxis.setLabelFont(labelFont);// X轴的标题文字字体 domainAxis.setTickLabelFont(labelFont);//X轴坐标上数值字体 // 设置距离图片左端距离 domainAxis.setLowerMargin(0.01); // 设置距离图片右端距离 domainAxis.setUpperMargin(0.01); try { /*------得到chart的保存路径----*/ ChartRenderingInfo info = new ChartRenderingInfo( new StandardEntityCollection()); filename = ServletUtilities.saveChartAsPNG(chart, w, h, info, session); /*------使用printWriter将文件写出----*/ ChartUtilities.writeImageMap(pw, filename, info, true); pw.flush(); } catch (IOException e) { // TODO 自动生成 catch 块 e.printStackTrace(); } return filename; } /** * 折线图 */ public static String generateLineChart(HttpSession session, PrintWriter pw, int w, int h) { String filename = null; // session.removeAttribute("JFreeChart_Deleter");//将tomcat中temp的统计图片删除 handleGarbledAndFont();//设置乱码和字体 CategoryDataset dataset = getDataSet3(); JFreeChart chart = ChartFactory.createLineChart("水果产量图", // 图表标题 "水果", // 目录轴的显示标签 "产量", // 数值轴的显示标签 dataset, // 数据集 PlotOrientation.VERTICAL, // 图表方向:水平、垂直 true, // 是否显示图例(对于简单的柱状图必须是false) false, // 是否生成工具 false // 是否生成URL链接 ); /*----------设置消除字体的锯齿渲染(解决中文问题)--------------*/ chart.getRenderingHints().put(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_OFF); /*------------配置图表属性--------------*/ // 1,设置整个图表背景颜色 chart.setBackgroundPaint(Color.pink); /*------------设定Plot参数-------------*/ CategoryPlot plot = chart.getCategoryPlot(); // 2,设置详细图表的显示细节部分的背景颜色 // plot.setBackgroundPaint(Color.PINK); // 3,设置垂直网格线颜色 plot.setDomainGridlinePaint(Color.black); // 4,设置是否显示垂直网格线 plot.setDomainGridlinesVisible(true); // 5,设置水平网格线颜色 plot.setRangeGridlinePaint(Color.blue); // 6,设置是否显示水平网格线 plot.setRangeGridlinesVisible(true); try { /*------得到chart的保存路径----*/ ChartRenderingInfo info = new ChartRenderingInfo( new StandardEntityCollection()); filename = ServletUtilities.saveChartAsPNG(chart, w, h, info, session); /*------使用printWriter将文件写出----*/ ChartUtilities.writeImageMap(pw, filename, info, true); pw.flush(); } catch (IOException e) { // TODO 自动生成 catch 块 e.printStackTrace(); } return filename; } /** * 获取一个饼状图的简单数据集对象 * * @return */ private static PieDataset getDataSet() { DefaultPieDataset dataset = new DefaultPieDataset(); dataset.setValue("苹果", 100); dataset.setValue("梨子", 200); dataset.setValue("葡萄", 300); dataset.setValue("香蕉", 400); dataset.setValue("荔枝", 500); return dataset; } /** * 获取一个柱状图数据集对象 * * @return * @throws Exception */ private static CategoryDataset getDataSet2() throws Exception { List<B_V_Ufp_PeopleAgeStatistics> list_B_V_Ufp_PeopleAgeStatistics1=PeopleAgeStatisticsAction.searchGovernmentLevelList(DbSessionFactory.getOracleSession()); List<B_V_Ufp_PeopleAgeStatistics> list_B_V_Ufp_PeopleAgeStatistics2=PeopleAgeStatisticsAction.searchTownLevelList(DbSessionFactory.getOracleSession()); DefaultCategoryDataset dataset = new DefaultCategoryDataset(); dataset.addValue(list_B_V_Ufp_PeopleAgeStatistics1.get(0).getUnderthirty(), "正局", "30周岁及以下"); dataset.addValue(list_B_V_Ufp_PeopleAgeStatistics1.get(0).getThirtyonetothirtyfive(), "正局", "31-35周岁"); dataset.addValue(list_B_V_Ufp_PeopleAgeStatistics1.get(0).getThirtysixtoforty(), "正局", "36-40周岁下"); dataset.addValue(list_B_V_Ufp_PeopleAgeStatistics1.get(0).getFortyonetofortyfive(), "正局", "41-45周岁"); dataset.addValue(list_B_V_Ufp_PeopleAgeStatistics1.get(0).getFortysixtofifty(), "正局", "46-50周岁"); dataset.addValue(list_B_V_Ufp_PeopleAgeStatistics1.get(0).getFiftyonetofiftyfive(), "正局", "51-55周岁"); dataset.addValue(list_B_V_Ufp_PeopleAgeStatistics1.get(0).getFiftysixtosixty(), "正局", "56-60周岁"); dataset.addValue(list_B_V_Ufp_PeopleAgeStatistics1.get(1).getUnderthirty(), "正科级", "30周岁及以下"); dataset.addValue(list_B_V_Ufp_PeopleAgeStatistics1.get(1).getThirtyonetothirtyfive(), "正科级", "31-35周岁"); dataset.addValue(list_B_V_Ufp_PeopleAgeStatistics1.get(1).getThirtysixtoforty(), "正科级", "36-40周岁下"); dataset.addValue(list_B_V_Ufp_PeopleAgeStatistics1.get(1).getFortyonetofortyfive(), "正科级", "41-45周岁"); dataset.addValue(list_B_V_Ufp_PeopleAgeStatistics1.get(1).getFortysixtofifty(), "正科级", "46-50周岁"); dataset.addValue(list_B_V_Ufp_PeopleAgeStatistics1.get(1).getFiftyonetofiftyfive(), "正科级", "51-55周岁"); dataset.addValue(list_B_V_Ufp_PeopleAgeStatistics1.get(1).getFiftysixtosixty(), "正科级", "56-60周岁"); dataset.addValue(list_B_V_Ufp_PeopleAgeStatistics2.get(0).getUnderthirty(), "副局级", "30周岁及以下"); dataset.addValue(list_B_V_Ufp_PeopleAgeStatistics2.get(0).getThirtyonetothirtyfive(), "副局级", "31-35周岁"); dataset.addValue(list_B_V_Ufp_PeopleAgeStatistics2.get(0).getThirtysixtoforty(), "副局级", "36-40周岁下"); dataset.addValue(list_B_V_Ufp_PeopleAgeStatistics2.get(0).getFortyonetofortyfive(), "副局级", "41-45周岁"); dataset.addValue(list_B_V_Ufp_PeopleAgeStatistics2.get(0).getFortysixtofifty(), "副局级", "46-50周岁"); dataset.addValue(list_B_V_Ufp_PeopleAgeStatistics2.get(0).getFiftyonetofiftyfive(), "副局级", "51-55周岁"); dataset.addValue(list_B_V_Ufp_PeopleAgeStatistics2.get(0).getFiftysixtosixty(), "副局级", "56-60周岁"); dataset.addValue(list_B_V_Ufp_PeopleAgeStatistics2.get(1).getUnderthirty(), "其他", "30周岁及以下"); dataset.addValue(list_B_V_Ufp_PeopleAgeStatistics2.get(1).getThirtyonetothirtyfive(), "其他", "31-35周岁"); dataset.addValue(list_B_V_Ufp_PeopleAgeStatistics2.get(1).getThirtysixtoforty(), "其他", "36-40周岁下"); dataset.addValue(list_B_V_Ufp_PeopleAgeStatistics2.get(1).getFortyonetofortyfive(), "其他", "41-45周岁"); dataset.addValue(list_B_V_Ufp_PeopleAgeStatistics2.get(1).getFortysixtofifty(), "其他", "46-50周岁"); dataset.addValue(list_B_V_Ufp_PeopleAgeStatistics2.get(1).getFiftyonetofiftyfive(), "其他", "51-55周岁"); dataset.addValue(list_B_V_Ufp_PeopleAgeStatistics2.get(1).getFiftysixtosixty(), "其他", "56-60周岁"); // dataset.addValue(100, "北京", "苹果"); // dataset.addValue(500, "北京", "荔枝"); // dataset.addValue(400, "北京", "香蕉"); // dataset.addValue(200, "北京", "梨子"); // dataset.addValue(300, "北京", "葡萄"); // dataset.addValue(500, "上海", "葡萄"); // dataset.addValue(600, "上海", "梨子"); // dataset.addValue(400, "上海", "香蕉"); // dataset.addValue(700, "上海", "苹果"); // dataset.addValue(300, "上海", "荔枝"); // dataset.addValue(300, "广州", "苹果"); // dataset.addValue(200, "广州", "梨子"); // dataset.addValue(500, "广州", "香蕉"); // dataset.addValue(100, "广州", "葡萄"); // dataset.addValue(400, "广州", "荔枝"); return dataset; } /** * 获取一个折线图数据集对象 * * @return */ private static CategoryDataset getDataSet3() { DefaultCategoryDataset dataset = new DefaultCategoryDataset(); dataset.addValue(100, "北京", "一月"); dataset.addValue(200, "北京", "二月"); dataset.addValue(100, "北京", "三月"); dataset.addValue(400, "北京", "四月"); dataset.addValue(300, "北京", "五月"); dataset.addValue(500, "北京", "六月"); dataset.addValue(90, "北京", "七月"); dataset.addValue(700, "北京", "八月"); dataset.addValue(800, "北京", "九月"); dataset.addValue(1000, "北京", "十月"); dataset.addValue(300, "北京", "十一月"); dataset.addValue(700, "北京", "十二月"); dataset.addValue(1200, "上海", "一月"); dataset.addValue(1100, "上海", "二月"); dataset.addValue(1000, "上海", "三月"); dataset.addValue(900, "上海", "四月"); dataset.addValue(800, "上海", "五月"); dataset.addValue(700, "上海", "六月"); dataset.addValue(600, "上海", "七月"); dataset.addValue(500, "上海", "八月"); dataset.addValue(400, "上海", "九月"); dataset.addValue(300, "上海", "十月"); dataset.addValue(200, "上海", "十一月"); dataset.addValue(100, "上海", "十二月"); dataset.addValue(600, "武汉", "一月"); dataset.addValue(500, "武汉", "二月"); dataset.addValue(400, "武汉", "三月"); dataset.addValue(300, "武汉", "四月"); dataset.addValue(200, "武汉", "五月"); dataset.addValue(100, "武汉", "六月"); dataset.addValue(200, "武汉", "七月"); dataset.addValue(300, "武汉", "八月"); dataset.addValue(400, "武汉", "九月"); dataset.addValue(500, "武汉", "十月"); dataset.addValue(600, "武汉", "十一月"); dataset.addValue(700, "武汉", "十二月"); return dataset; } /** * 处理乱码和字体 * @throws IOException */ public static void handleGarbledAndFont(){ //创建主题样式 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); } /** * 在本地生成图片文件 * @throws Exception * @throws IOException */ public static void ganarateFruitChart() throws Exception{ CategoryDataset dataset = getDataSet2(); JFreeChart chart = ChartFactory.createBarChart3D("水果产量图", // 图表标题 "月份", // 目录轴的显示标签 "产量(公斤)", // 数值轴的显示标签 dataset, // 数据集 PlotOrientation.VERTICAL, // 图表方向:水平、垂直 true, // 是否显示图例(对于简单的柱状图必须是false) false, // 是否生成工具 false // 是否生成URL链接 ); FileOutputStream fos_jpg = null; try { fos_jpg = new FileOutputStream("D:\\fruit.jpg");//将图片保存到d盘 ChartUtilities.writeChartAsJPEG(fos_jpg, 1.0f, chart, 400, 300, null); //将图片保存到E盘(另外一种写法) ChartUtilities.saveChartAsPNG(new File("E:/BarChart3D.png"), chart, 800, 500); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } finally { try { fos_jpg.close(); } catch (Exception e) { } } } /** * @param args * @throws Exception */ public static void main(String[] args) throws Exception { ganarateFruitChart(); } }
2.jsp页面,将jsp:directive.page 导入换成自己路径
<%@ page contentType="text/html;charset=GBK"%> <%@ page import="java.io.PrintWriter"%> <jsp:directive.page import="com.jw.magicbpm.action.officebusinessmanage.BarChartDemo"/> <html> <head> <title> </title> <% //饼状图 String fileNamePie=BarChartDemo.generatePieChart(session,new PrintWriter(out),580,250); //如果用了strut的话此处为DisplayChart.servlet,不能DisplayChart,原因上面说了 String graphURLPie = request.getContextPath() + "/servlet/DisplayChart.servlet?filename=" + fileNamePie; //柱状图 String fileNameBar=BarChartDemo.generateBarChart(session,new PrintWriter(out),580,250); String graphURLBar = request.getContextPath() + "/servlet/DisplayChart.servlet?filename=" + fileNameBar; //折线图 String fileNameLine=BarChartDemo.generateLineChart(session,new PrintWriter(out),580,250); String graphURLLine = request.getContextPath() + "/servlet/DisplayChart.servlet?filename=" + fileNameLine; %> </head> <body bgcolor="#ffffff"> <table align="center" width="580" border="0" cellspacing="0" cellpadding="0"> <tr> <td> <img src="<%= graphURLPie %>"width=580 height=250 border=0 > </td> </tr> <tr> <td> <img src="<%= graphURLBar %>"width=580 height=250 border=0 > </td> </tr> <tr> <td> <img src="<%= graphURLLine %>"width=580 height=250 border=0 > </td> </tr> </table> </body> </html>
3.web.xml加上以下,里面DisplayChart也得加上servlet,和jsp里面一致
<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.servlet</url-pattern> </servlet-mapping>
如果是用的tomcat,那么所生成的临时图片都在tomcat目录中temp文件中,每次点击进入页面就会生成图片,时间一久tomcat中那这些没用的图片就会很多。得想办法删了,114行我注释的这句话session.removeAttribute("JFreeChart_Deleter");//将tomcat中temp的统计图片删除
这个就是删除生成的临时图片,但也局限性,就如这jsp中如果有三个统计,分开了每次跑后台,那么在后台每次都执行session.removeAttribute("JFreeChart_Deleter"),这样就会每次将前面的所生成的图片删除,那么三次跑后台到最后就只有最后一张图片了,所以尽量只走一次后台,或者后台整合到一个方法中,前台页面就一个url.如果确实得分开来用几个统计,那可用bat脚本将temp里面的临时图片删除(个人推荐这种方法),见http://liangjie5305579-126-com.iteye.com/admin/blogs/1743824.
发表评论
-
Oracle手工修改JOB属性(转载mark)
2017-05-18 16:01 772转载地址:http://blog.itpub.net/2913 ... -
将Oracle 11g改为密码大小写不敏感的方法
2014-03-10 15:41 917转载地址:http://blog.sina.com.cn/s/ ... -
鼠标移动显示层
2013-12-24 15:56 986转自csdn中一个朋友的回答答案http://bbs.csdn ... -
java解析xml字符串(用dom4j)
2013-12-10 12:12 27563转自:http://blog.chinaunix. ... -
StringUtils的isBlank与isEmply
2013-05-16 14:00 961转载地址:http://www.cnblogs.com/Xia ... -
java高并发解决方案
2013-03-20 17:06 924转载地址:http://www.juzik ... -
jrebel在Myeclipse中的使用
2013-03-05 18:23 5006JRebel是一款JAVA虚拟机插件,它使得JAVA程序员能在 ... -
Weblogic的那些端口
2013-02-22 09:31 2128转载地址:http://blog.sina.com.cn/s/ ... -
oracle wm_concat(column)函数的使用
2013-02-01 17:18 1094转载地址:http://database.51cto.com/ ... -
oracle根据分隔符将字符串分割成数组函数
2013-01-16 10:29 10751--创建表类型 create or replace type ... -
javascript:window.open 打开最大化窗口设置及详解
2013-01-15 16:22 2067转载地址:http://www.cnblogs.com/yun ... -
离开页面执行 onbeforeunload与onunload事件区别
2013-01-06 11:24 1403onunload,onbeforeunload都是在刷新或关闭 ... -
Oracle中NVARCHAR2与VARCHAR2的相互转换
2013-01-05 13:22 14740转载地址:http://adamxgl.blog.163.co ... -
jfreechart属性设置
2012-12-03 16:51 1217转载地址:http://syc001.iteye.com/bl ... -
sun.misc.BASE64Encoder找不到jar包的解决方法 .
2012-10-26 18:04 1072地址:http://blog.csdn.net/jbxiaoz ... -
js添加、删除select
2012-10-26 14:29 980地址:http://www.xwqy.com/news_det ... -
POI HSSF 操作MS Excel简述
2012-09-07 10:31 1378文章转自http://java.mblogge ... -
java的HashCode方法 (转载)
2012-07-18 18:29 838文章出自http://www.cnblogs.com/baty ...
相关推荐
在"jfreechart统计图的WEB打照"这个主题中,我们将深入探讨如何使用JFreeChart来生成统计图表,并将其集成到Web应用中。 首先,我们需要了解JFreeChart的基本用法。JFreeChart库提供了一系列的类和方法来创建和定制...
**JFreeChart统计图资料详解** 在数据可视化领域,JFreeChart是一个强大的开源Java库,它为开发者提供了创建各种类型统计图的能力,如柱状图、饼图和曲线图等。JFreeChart自2001年发布以来,一直被广泛应用于商业...
**JFreeChart统计图** JFreeChart是一款强大的Java库,专为创建高质量的图表而设计。这个库广泛用于各种应用程序,包括报告、仪表板、Web应用等,它提供了丰富的图表类型,如曲线图、柱形图和饼状图。通过...
JFreeChart是一款强大的Java库,专门用于生成高质量的统计图表,包括折线图、柱状图、饼图、散点图、甘特图等多种类型。它在IT领域中广泛应用于数据分析、报表生成以及可视化应用中,能有效地帮助开发者将复杂的数据...
本例子将详细介绍如何利用JFreeChart生成统计图,特别是柱状图和饼图。 首先,我们需要导入JFreeChart库。通常,这涉及到在项目中添加JFreeChart的jar包。在提供的压缩包中,`chartDemo`可能是包含示例代码的Java...
JFreeChart是一款强大的Java库,专门用于生成高质量的统计图形。这款开源工具广泛应用于各种Java应用程序,包括桌面应用、Web应用以及服务器端应用,能够帮助开发者轻松创建各种复杂的图表,如折线图、柱状图、饼图...
在深入学习 JFreeChart 之前,让我们先了解一下统计图的基本概念。 统计图是数据可视化的重要工具,它能够将复杂的数据以图形的方式展示出来,帮助我们直观地理解和分析数据。柱状图用于比较类别之间的数量差异,...
在压缩包中的"jfreechart统计图"可能包含了使用JFreeChart创建的各种统计图表示例,通过研究这些示例,你可以更好地理解和学习如何使用JFreeChart库。这不仅有助于掌握曲线图的绘制,还能对其他类型的图表有所了解,...
"JFreeChart+JSP实现统计图展示"是一个典型的Web应用程序开发案例,它结合了JFreeChart库、JavaServer Pages (JSP) 和Servlet技术,用于从SQL Server 2005数据库中提取数据并以图表的形式呈现。 **JFreeChart** 是...
标题“Spring+JFreeChart 自动生成统计图”涉及的是在Java开发环境中,利用Spring框架和JFreeChart库来动态生成图表的技巧。这篇文章可能是介绍如何在Spring应用中集成JFreeChart,以便为数据可视化提供服务。 ...
Java 利用 JFreeChart 实现数据统计图 在数据挖掘中,数据分析的结果需要直观地展现给用户,这就需要使用数据统计图。Java 中可以使用 JFreeChart 库来实现各种数据统计图,如柱形图、饼图、折线图等。下面将详细...
下面有两个简单的例子,调用servlet,生成统计图. 条形统计图 href="servlet/ServletDemo1">条形统计图; <!--跳转到ServletDemo1生成条形统计图--> 可以选择统计图类型 href="chart1.html">三种类型 <!--链接到chart...
下面是实现动态生成统计图的具体步骤: 1. **项目设置**: - 创建一个新的S2SH项目,并配置好相关的框架。 - 将必要的库文件添加到项目的类路径中,包括jfreechart-1.0.14.jar、struts2-jfreechart-plugin-2.2.1....
JFreeChart是一组功能强大、灵活易用的Java绘图API,使用它可以生成多种通用性的报表,包括柱状图、饼图、曲线图、甘特图等。它能够用在Swing和Web等中制作自定义的图表或报表,并且得到广泛的应用。本文将通过引领...