JFreeChart 之柱状图

JFreeChart 之柱状图

一、JFreeChart 简介

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

二、JFreeChart 的使用

  官方网站:http://www.jfree.org/

  下载地址:https://sourceforge.net/projects/jfreechart/files/1.%20JFreeChart/

1、拷贝相关的 Jar (jcommon-1.0.23.jar和jfreechart-1.0.19.jar)到 Java 项目中

2、柱状图示例(LineChart.java

 1 package cn.com.zfc.jfreechart;
 2
 3 import java.awt.Font;
 4 import java.io.File;
 5 import java.io.IOException;
 6
 7 import org.jfree.chart.ChartFactory;
 8 import org.jfree.chart.ChartFrame;
 9 import org.jfree.chart.ChartUtilities;
10 import org.jfree.chart.JFreeChart;
11 import org.jfree.chart.axis.CategoryAxis3D;
12 import org.jfree.chart.axis.NumberAxis3D;
13 import org.jfree.chart.axis.NumberTickUnit;
14 import org.jfree.chart.labels.StandardCategoryItemLabelGenerator;
15 import org.jfree.chart.plot.CategoryPlot;
16 import org.jfree.chart.plot.PlotOrientation;
17 import org.jfree.chart.renderer.category.BarRenderer3D;
18 import org.jfree.data.category.DefaultCategoryDataset;
19
20 /**
21  * @describe 使用 JFreeChart 技术画柱状图
22  * @author zfc
23  * @date 2017年12月27日 下午4:03:56
24  */
25 public class BarChart3D {
26     public static void main(String[] args) {
27         /* 1、数据集对象 DefaultCategoryDataset */
28         DefaultCategoryDataset dataset = new DefaultCategoryDataset();
29         /* 2、数据集对象 DefaultCategoryDataset 中添加数据 */
30         dataset.addValue(98, "数学", "张三");
31         dataset.addValue(87, "语文", "张三");
32         dataset.addValue(68, "数学", "李四");
33         dataset.addValue(89, "语文", "李四");
34         dataset.addValue(56, "数学", "王五");
35         dataset.addValue(96, "语文", "王五");
36         /* 3、创建图形对象 JFreeChart:主标题的名称,图标显示的数据集合,是否显示子标题,是否生成提示的标签,是否生成URL链接 */
37         JFreeChart chart = ChartFactory.createBarChart3D("成绩统计表", "学生姓名", "分数", dataset, PlotOrientation.VERTICAL, true,
38                 true, true);
39         /* 4、处理乱码 */
40         // 处理主标题的乱码
41         chart.getTitle().setFont(new Font("宋体", Font.BOLD, 18));
42         // 处理子标题乱码
43         chart.getLegend().setItemFont(new Font("宋体", Font.BOLD, 15));
44         /* 5、获取图表区域对象 CategoryPlot */
45         CategoryPlot categoryPlot = (CategoryPlot) chart.getPlot();
46         // 获取X轴的对象
47         CategoryAxis3D categoryAxis3D = (CategoryAxis3D) categoryPlot.getDomainAxis();
48         // 获取Y轴的对象
49         NumberAxis3D numberAxis3D = (NumberAxis3D) categoryPlot.getRangeAxis();
50         // 处理X轴上的乱码
51         categoryAxis3D.setTickLabelFont(new Font("宋体", Font.BOLD, 15));
52         // 处理X轴外的乱码
53         categoryAxis3D.setLabelFont(new Font("宋体", Font.BOLD, 15));
54         // 处理Y轴上的乱码
55         numberAxis3D.setTickLabelFont(new Font("宋体", Font.BOLD, 15));
56         // 处理Y轴外的乱码
57         numberAxis3D.setLabelFont(new Font("宋体", Font.BOLD, 15));
58         // 处理Y轴上显示的刻度,以10作为1格
59         numberAxis3D.setAutoTickUnitSelection(false);
60         NumberTickUnit unit = new NumberTickUnit(10);
61         numberAxis3D.setTickUnit(unit);
62         // 获取绘图区域对象
63         BarRenderer3D barRenderer3D = (BarRenderer3D) categoryPlot.getRenderer();
64         // 设置柱形图的宽度
65         barRenderer3D.setMaximumBarWidth(0.07);
66         // 在图形上显示数字
67         barRenderer3D.setBaseItemLabelGenerator(new StandardCategoryItemLabelGenerator());
68         barRenderer3D.setBaseItemLabelsVisible(true);
69         barRenderer3D.setBaseItemLabelFont(new Font("宋体", Font.BOLD, 15));
70
71         /* 8、生成相应的图片 */
72         File file = new File("I:/BarChart3D.JPEG");
73         try {
74             ChartUtilities.saveChartAsJPEG(file, chart, 800, 600);
75         } catch (IOException e) {
76             e.printStackTrace();
77         }
78
79         // 使用ChartFrame对象显示图像
80         ChartFrame frame = new ChartFrame("zfc", chart);
81         frame.setVisible(true);
82         frame.pack();
83     }
84 }

3、运行结果

原文地址:https://www.cnblogs.com/zfc-java/p/8137424.html

时间: 2024-08-11 08:28:57

JFreeChart 之柱状图的相关文章

SSH框架通过JFreeChart实现柱状图

一.直接生成的图片输出到jsp页面 1.jsp页面 <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib prefix="s" uri="/struts-tags" %> <% String path = request.getConte

【转载】使用JFreeChart实现基于Web的柱状图

JFreeChart是一组功能强大.灵活易用的 Java绘图 API,使用它可以生成多种通用性的报表,包括柱状图.饼图.曲线图等.它能够用在 Swing和 Web等中制作自定义的图表或报表,并且得到广泛的应用.本文将通过引领读者学习在JFreeChart中 柱状图 . 饼图 和曲线图的进阶应用,来达到熟练使用 JFreeChart的目的. 一. 下载与环境配置 1. 下载 JFreeChart JFreeChart是开放源代码的免费软件.可以到其官方网站http://sourceforge.ne

jfreechart和springMVC+maven整合

高校的项目中一个功能是对统计的成绩进行图表分析,查找了一些资料之后感觉jfreechar上手挺快的,简单的做了几个demo也都很好实现,也能够满足项目中的需求,所以就决定使用这个工具.这里就将学习到的一些关于jfreechar的知识整理一下. 1.    引入jar包 使用这个工具一定要将他的包引入的到项目,在高校的项目中使采用maven管理这些外部文件的,所以对于引入jar包这一步就变得特别简单了,只要在maven项目的pom.xml文件中添加jfreechar的依赖就可以(maven会自动在

jfreechart图表封装

V2.0的项目开始,卸下组长的责任投入了一个个小模块的技术研究里,一直以来技术研究好像是我的弱点,可能是因为平时积累不够的原因,但是这次顶着压力接下了这个任务,还是努力的去做了,尽管最终的结果可能不是很漂亮,但是至少还是迈出了一步. 废话少说,先说说我的需求:因为ITOO的系统中多个子系统都涉及到图表的使用,所以需要封装一个公共的方法来供各子系统调用,这次迭代主要完成的图表有:柱形图,折线图,饼形图:下面从底层封装开始写写我封装jfreechart图表的过程,并说一下它的不足,希望得到更多的指教

jfreechart 柱状图的重叠显示 LayeredBarRenderer

由于jfreechart中 LayeredBarRenderer在绘制时,即便将两个series设置成相同宽度,也会显示为不同宽度.可以通过如下方式实现重叠显示. LayeredBarRenderer renderer = new LayeredBarRenderer (); renderer.setSeriesBarWidth(0, 1); renderer.setSeriesBarWidth(1, 0.6); jfreechart 柱状图的重叠显示 LayeredBarRenderer,布布

JFreeChart柱状图单组柱子的不同颜色显示

JFreeChart柱状图中单组柱子用不同颜色来显示的实现方法是自定义一个Renderer来继承BarRenderer类,然后重载getItemPaint(int i,int j)方法. 实现效果如下: 实现代码如下: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 public class CustomRenderer extends org.jfree.chart.renderer.category.BarRenderer

jfreeChart柱状图各属性详细设置

一. 下载与环境配置 此最新版本为 1.0.13 解压jfreechart-1.0.13.zip 将lib目录下的jfreechart-1.0.13.jar .jcommon-1.0.16.jar 复制到工程 WEB-INF\lib 文件夹中 二. 配置 我是用Struts1.2开发的. 在工程的web.xml 文件中添加 <servlet>             <servlet-name>DisplayChart</servlet-name>           

使用 jfreechart 生成 曲线、柱状图、饼状图、分布图 展示到JSP

原文:使用 jfreechart 生成 曲线.柱状图.饼状图.分布图 展示到JSP 源代码下载地址:http://www.zuidaima.com/share/1550463634410496.htm 虽然现在JS做报表和图形展示已经非常普遍和漂亮了,但是不能忽略有jfreechart 这样一种东西! 这些翻阅资料,在看以前写的示例时发现了关于jfreechart 的简单示例,不管怎样发上来分享一下!

JFreeChart在Struts2中实现3D柱状图统计

上篇介绍了JFreeChart柱状图在Struts2中的实现,这篇来看一下3D柱状图的实现. 在Struts2中,用JFreeChart实现3D柱状图统计 下面分别用两种方式来实现: 一种是以java应用程序的方式,一种是以web项目程序的方式 需要加入的jar包有:  jcommon-1.0.17.jar . jfreechart-1.0.14.jar(前两个是JFreeChart中所带的,在下载的JFreeChart的lib目录下) . struts2-jfreechart-plugin-2