Java学习笔记 制作图表过程(Eclipse+JFreeChart)

本文介绍了如何在Eclipse环境下配置和使用JFreeChart库来生成图表,包括下载JFreeChart,将所需的jar包添加到项目中,以及提供了一个简单的柱状图生成代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

JFreeChart是开放源代码站点SourceForge.net上的一个JAVA项目,它主要用来生成各种各样的图表,这些图表包括:饼图、柱状图(普 通柱状图以及堆栈柱状图)、线图、区域图、分布图、混合图、甘特图以及一些仪表盘等等。这些不同式样的图表基本上可以满足目前的要求。该公司的主要产品有如下:
         1、JFreeReport:报表解决工具
         2、JFreeChart:Java图形解决方案(Application/Applet/Servlet/Jsp)
         3、JCommon:JFreeReport和JFreeChart的公共类库
         4、JFreeDesigner:JFreeReport的报表设计工具

JFreeChart所生成的Chart包括三个部分:Title,Plot (图形的主要显示区域)和 Legend

      正在进行中的一个数据分析软件需要用到JAVA的图表引擎JFreeChart来作图,现将其在Eclipse中的配置过程说明如下:
1.下载JFreeChart:http://www.jfree.org/jfreechart/index.html
2.安装配置:先解压jfreechart-1.0.9.zip,再将解压之后的文件中的\lib下的gnujaxp.jar,jcommon-1.0.12.jar,jfreechart-1.0.9.jar三个jar包添加到project中。在Eclipse中的具体做法为:project菜单——>Properties——>Java Build Path——>Libraries——>Add External Jars,就这样将上述三个jar文件逐一添加到当前Project中。
3.基于JFreeChart编程
以下是网上找的一个利用Jfreechart生成柱状图的程序段,以测试配置成功。

 

import java.io.*;
import java.awt.Dimension;
import javax.swing.JPanel;
import org.jfree.chart.*;
import org.jfree.chart.axis.CategoryAxis;
import org.jfree.chart.axis.CategoryLabelPositions;
import org.jfree.chart.plot.CategoryPlot;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.chart.renderer.category.BarRenderer3D;
import org.jfree.data.category.CategoryDataset;
import org.jfree.data.category.DefaultCategoryDataset;
import org.jfree.data.general.DatasetUtilities;
import org.jfree.ui.ApplicationFrame;
import org.jfree.ui.RefineryUtilities;
/**
* 该类用于演示最简单的柱状图生成

*/
public class BarChartDemo {
        public static void main(String[] args) throws IOException{
                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");
                      
                        ChartUtilities.writeChartAsJPEG(fos_jpg,chart,400,300);
                } finally {
                        try {
                                fos_jpg.close();
                        } catch (Exception e) {}
                }
        }
        /**
         * 获取一个演示用的简单数据集对象
         * @return
         */
        private static CategoryDataset getDataSet() {
                DefaultCategoryDataset dataset = new DefaultCategoryDataset();
                dataset.addValue(100, null, "苹果");
                dataset.addValue(200, null, "梨子");
                dataset.addValue(300, null, "葡萄");
                dataset.addValue(400, null, "香蕉");
                dataset.addValue(500, null, "荔枝");
                return dataset;
        }
        /**
         * 获取一个演示用的组合数据集对象
         * @return
         */
        private static CategoryDataset getDataSet2() {
                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;
        }
}


.4 生成的图表
上述程序生成的柱状图如下:

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值