`
xmddl369
  • 浏览: 23230 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
社区版块
存档分类
最新评论

jfreechart初步

阅读更多
package com.xmddl.jfreechart;

import java.awt.Color;
import java.awt.Font;
import java.io.IOException;
import java.sql.Connection;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartUtilities;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.axis.AxisLocation;
import org.jfree.chart.axis.CategoryAxis;
import org.jfree.chart.axis.ValueAxis;
import org.jfree.chart.labels.StandardCategoryItemLabelGenerator;
import org.jfree.chart.plot.CategoryPlot;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.chart.renderer.category.BarRenderer3D;
import org.jfree.chart.renderer.category.StackedBarRenderer3D;
import org.jfree.data.category.DefaultCategoryDataset;
import org.jfree.data.general.DefaultPieDataset;
import org.jfree.data.jdbc.JDBCXYDataset;

import com.xmddl.common.DBService;

public class JFreeChartServlet1 extends HttpServlet {
	static Connection con = DBService.getInstance().getConnection();
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;

	/**
	 * Constructor of the object.
	 */
	public JFreeChartServlet1() {
		super();
	}

	/**
	 * Destruction of the servlet. <br>
	 */
	public void destroy() {
		super.destroy(); // Just puts "destroy" string in log
		// Put your code here
	}

	/**
	 * The doGet method of the servlet. <br>
	 * 
	 * This method is called when a form has its tag value method equals to get.
	 * 
	 * @param request
	 *            the request send by the client to the server
	 * @param response
	 *            the response send by the server to the client
	 * @throws ServletException
	 *             if an error occurred
	 * @throws IOException
	 *             if an error occurred
	 */
	public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		response.setContentType("image/jpeg");
		DefaultCategoryDataset data = getDataSet();
		JFreeChart chart = ChartFactory.createStackedBarChart("水果销量图统计", null,
				null, data, PlotOrientation.VERTICAL, true, false, false);

		chart.setBackgroundPaint(Color.WHITE);
		CategoryPlot plot = chart.getCategoryPlot();
		CategoryAxis domainAxis = plot.getDomainAxis();
		// domainAxis.setVerticalCategoryLabels(false);
		plot.setDomainAxis(domainAxis);
		ValueAxis rangeAxis = plot.getRangeAxis();
		// 设置最高的一个 Item 与图片顶端的距离
		rangeAxis.setUpperMargin(0.15);
		// 设置最低的一个 Item 与图片底端的距离
		rangeAxis.setLowerMargin(0.15);
		plot.setRangeAxis(rangeAxis);
		// BarRenderer3D renderer = new BarRenderer3D();
		StackedBarRenderer3D renderer = new StackedBarRenderer3D();
		renderer.setBaseOutlinePaint(Color.BLACK);
		// 设置 Wall 的颜色
		renderer.setWallPaint(Color.gray);
		// 设置每种水果代表的柱的颜色
		renderer.setSeriesPaint(0, new Color(0, 0, 255));
		renderer.setSeriesPaint(1, new Color(0, 100, 255));
		renderer.setSeriesPaint(2, Color.GREEN);
		// 设置每种水果代表的柱的 Outline 颜色
		renderer.setSeriesOutlinePaint(0, Color.BLACK);
		renderer.setSeriesOutlinePaint(1, Color.BLACK);
		renderer.setSeriesOutlinePaint(2, Color.BLACK);
		// 设置每个地区所包含的平行柱的之间距离
		renderer.setItemMargin(0.1);
		// 显示每个柱的数值,并修改该数值的字体属性
		renderer
				.setItemLabelGenerator(new StandardCategoryItemLabelGenerator());
		renderer.setItemLabelFont(new Font("黑体", Font.PLAIN, 12));
		renderer.setItemLabelsVisible(true);
		renderer.setMaximumBarWidth(0.08D);
		plot.setRenderer(renderer);
		// 设置柱的透明度<BR>
		plot.setForegroundAlpha(0.6f);
		// 设置地区、销量的显示位置<BR>
		plot.setDomainAxisLocation(AxisLocation.BOTTOM_OR_LEFT);
		plot.setRangeAxisLocation(AxisLocation.BOTTOM_OR_LEFT);

		ChartUtilities.writeChartAsJPEG(response.getOutputStream(), 500, chart,
				600, 400, null);

	}

	/**
	 * 获取一个演示用的简单数据集对象
	 * 
	 * @return
	 */
	private static DefaultCategoryDataset getDataSet() {
		DefaultCategoryDataset dataset = new DefaultCategoryDataset();
		dataset.addValue(100, "北京", "苹果");
		dataset.addValue(100, "上海", "苹果");
		dataset.addValue(100, "广州", "苹果");

		dataset.addValue(200, "北京", "梨子");
		dataset.addValue(200, "上海", "梨子");
		dataset.addValue(200, "广州", "梨子");

		dataset.addValue(300, "北京", "葡萄");
		dataset.addValue(300, "上海", "葡萄");
		dataset.addValue(300, "广州", "葡萄");

		dataset.addValue(400, "北京", "香蕉");
		dataset.addValue(400, "上海", "香蕉");
		dataset.addValue(400, "广州", "香蕉");

		dataset.addValue(500, "北京", "荔枝");
		dataset.addValue(500, "上海", "荔枝");
		dataset.addValue(500, "广州", "荔枝");

		return dataset;

		// dataset.setValue("苹果",100);
		// dataset.setValue("梨子", 200);
		// dataset.setValue("葡萄", 300);
		// dataset.setValue("香蕉", 200);
		// dataset.setValue("荔枝", 200);
		// return dataset;
	}

	/**
	 * Initialization of the servlet. <br>
	 * 
	 * @throws ServletException
	 *             if an error occure
	 */
	public void init() throws ServletException {
		// Put your code here
	}

}
 
  • 大小: 688.6 KB
分享到:
评论

相关推荐

    jfreechart 实例

    通过以上介绍,你应该对JFreeChart有了初步的认识。实际操作时,结合提供的实例,你会发现JFreeChart是一个功能丰富且易于使用的图表库。不断探索和实践,你将能够充分利用它来实现各种复杂的数据可视化需求。记住,...

    jfreechartDEMO(官网demo与源代码)

    《JFreeChart实战:深入解析官网DEMO及源代码》 ...通过以上的讲解,相信读者对JFreeChart已经有了初步的了解。实际操作DEMO并研究源代码,将使你对这个强大的图表库有更深入的认识,从而更好地应用于实际项目。

    JFreeChart在JSP(tomcat)中的一些问题(图片不显示)好资源0分送

    - **初步排查**:首先确认代码本身是否存在错误。例如,确保所有必要的JAR包已正确导入项目。 - **示例代码**:通常情况下,开发者会参考网络上的示例代码。需要注意的是,即使代码是从可靠的源代码库拷贝过来的,...

    jfreechart1.0教程

    **JFreeChart 1.0 教程** JFreeChart 是一个开源的 Java 图形库,...通过以上内容,你应该对 JFreeChart 1.0 有了初步的认识,继续深入实践和探索,你会发现它的强大功能和灵活性,能够满足各种复杂的数据可视化需求。

    JFreeChart学习笔记

    **JFreeChart学习笔记**...通过上述内容,你应该对JFreeChart有了初步了解,可以开始尝试创建自己的图表。在实际操作中,查阅JFreeChart的官方文档和示例代码会更有利于掌握其精髓。祝你在数据可视化领域取得更多成就!

    JAVA用POI从Excel读取数据进行相关统计,JFreeChart绘制图表.docx

    提供的代码片段展示了如何使用JOptionPane显示消息对话框,以及如何读取Excel文件并进行初步的数据处理。`ReadFileUsingFileChooser()`方法应该是用于读取Excel文件并创建`Employee`对象列表的部分。 8. **运行...

    JFreeChat入门教程.pdf

    **JFreeChart 入门教程** ...通过这个 JFreeChart 入门教程,你应该对如何使用 JFreeChart 创建和自定义图表有了初步了解。继续深入实践,你将能够熟练地利用 JFreeChart 实现各种复杂的图表需求。

    JFreeChat学习

    通过以上讲解,你应该对JFreeChart的基本用法有了初步了解。阅读提供的文档,如"JFreeChart中柱状图的详细设置.doc",将有助于进一步掌握柱状图的高级定制技巧。不断实践和探索,你将能够充分利用JFreeChart创建出...

    web页面报表分析之3D饼状图

    6. **报表分析**:3D饼状图通常用于数据的概览,你需要知道如何解读和解释饼图中的数据分布,以及如何根据这些信息进行初步的分析。 7. **源码阅读**:项目提供完整的源码,这是学习的好机会。通过阅读和理解代码,...

    IBM_Java 高级.课件

    1 Tomcat服务器 2 eclipse集成开发环境 3 JS讲义 ...5 CSS01讲义 6 servle技术初步入门 7 servle核心技术 8 JSP技术初步入门 9 JSP核心技术与应用 10 JSTL技术介绍 ...专题 JFreeChart技术 专题 Ibatis技术

    豆瓣图书 数据分析1

    在抓取数据时,我们需要注意防止反爬虫机器人的干扰,并且需要对数据进行初步清洗。 在本次数据分析中,我们抓取了豆瓣图书的所有热门标签下的图书数据,共计 145 个标签。然后,我们对数据进行处理和分析,包括...

    股票信息管理系统jsp版

    本系统是一个完整的JSP-JAVA应用项目,合适有初步JSP编程经验的朋友们提高和学习之用。 系统含全套源码,合适朋友们在此基础上举一反三结合实际开发出优秀的JSP应用系统。 本系统是Web模式的股票信息管理系统 ...

    基于jsp的股票交易管理系统

    本系统是一个完整的JSP-JAVA应用项目,合适有初步JSP编程经验的朋友们提高和学习之用。 系统含全套源码,合适朋友们在此基础上举一反三结合实际开发出优秀的JSP应用系统。 本系统是Web模式的股票信息管理系统 ...

    flex嵌入jsp心得

    通过解压并阅读其中的readme.txt文件,开发者获取了初步的指导思路,了解到该模块能够简化Flex与JSP集成的过程。 #### 3. 集成步骤详解 - **下载并解压FlexModule_j2ee.zip**:这是集成Flex到JSP项目的首要步骤。 ...

    plant_flowsheet_interface:对用于创建和解决工厂流程图的界面进行原型设计

    在"plant_flowsheet_interface"中,开发者很可能使用了诸如Sketch、Adobe XD或Figma等设计工具来创建初步的界面布局,然后将其转化为可交互的Java应用程序。这样的设计流程有助于确保最终产品符合用户的操作习惯,...

    JAVA生成条码

    - **jFreeChart**:虽然jFreeChart主要是一个图表库,但也可以用于生成条形码,特别是Code 128和Code 39。 2. **使用ZXing生成条码** 首先,你需要在项目中引入ZXing库。然后,你可以创建一个`BitMatrix`对象,将...

    Java串口通信数据采控系统的设计与实现.pdf

    下位机负责数据的采集和初步处理,而上位机则负责数据的进一步处理、存储以及控制命令的发送。具体实现包括: - **下位机**:使用ADI公司的ADuC7026微控制器采集环境数据,并通过Max232芯片将数据发送至上位机。 - ...

    毕业设计--基于FP-Growth算法的佳丽快餐决策支持子系统的实现

    在数据库建模阶段,作者进行了业务建模、需求定义、分析和初步设计,以及数据库的物理实现,将对象类转换为关系模式,以适应数据存储和查询的需求。在系统分析部分,论文详细划分了系统的各个模块,例如人事管理模块...

    本科毕业设计-基于Java的奖助学金管理系统.zip

    系统会自动根据设定的规则进行初步审核,然后流转至相关人员进行人工复核。这涉及工作流引擎,如Activiti,用于管理审批流程。 4. **通知与公告发布**:系统能够实时向学生推送申请状态更新,同时发布相关的奖助学...

Global site tag (gtag.js) - Google Analytics