`
cjnetwork
  • 浏览: 179542 次
  • 性别: Icon_minigender_1
  • 来自: 重庆
社区版块
存档分类
最新评论

JFreeChart简单例子---饼图、折线图

阅读更多

      

 上午完成了JFreeChart绘制饼图、折线图两种。整体上感觉JFreeChart功能还是比较强大的,只是没有很好的文档,官方网站上的是要收费的。网上找了一些,也只是基本的,然后雷同事也给了我一个word文档,这些基本上也够我画这个JFreeChart的图了。JFreeChart每一个类的方法封装过多,这是我的感觉,有的时候找一个东西有点麻烦,对中文的支持也不是很好,每次画图的时候还要自己设置字体,否则中文就是乱码。

 

   

使用JFreeChart绘图的基本流程:
1、定义数据源
2、填充数据
3、定义JFreeChart实例
4、设置Chart属性
5、导出到JPG或实例化一个Frame显示

1、DefaultPieDataset dataset = new DefaultPieDataset();
2、dataset.setValue("初中", 10);
dataset.setValue("高中", 10);
dataset.setValue("大学", 10);
3、JFreeChart chart = ChartFactory.createPieChart3D("学历分布图", dataset, true, true, true);
4、Font font = new Font(title, Font.BOLD, 15);
chart.getTitle().setFont(font);
5、ChartFrame frame = new ChartFrame(title, chart);
frame.pack();
frame.setVisible(true);

ChartUtilities.saveChartAsJPEG(new File("d:/testChart.jpg"), chart, 400, 400);


基本流程都是一致的,只是画各种不同的图的时候各项设置和各个类有细微差别。
使用JFreeChart,有几个概念需要理解,
chart——整个图表,包含一个plot
plot——图表数据的载体
dataset——数据集合

 

    以下是2个完成的例子(当然JFreeChart的包还是要自己加一下的,可以到http://www.jfree.org/jfreechart/上去下载)

 

   

package com.cjnetwork.testjfreechart.aatest;

import java.awt.Font;
import java.io.File;

import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartFrame;
import org.jfree.chart.ChartUtilities;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.labels.StandardCategoryItemLabelGenerator;
import org.jfree.chart.plot.CategoryPlot;
import org.jfree.chart.plot.PiePlot;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.chart.renderer.category.LineAndShapeRenderer;
import org.jfree.data.category.DefaultCategoryDataset;
import org.jfree.data.general.DefaultPieDataset;

public class TestJFreeChart {

	public static void main(String[] args) throws Exception{
		
		System.out.println("start...");
		
		//测试饼图
		testPieChart();
		
		//测试折线图
		testLineChart();
		
		System.out.println("complete...");
	}

	/**
	 * 
	 * 测试饼图
	 * 
	 * cjnetwork 2010-11-17下午05:21:15
	 */
	private static void testPieChart() throws Exception{
		DefaultPieDataset dataset = new DefaultPieDataset();
		
		dataset.setValue("初中", 25);
		dataset.setValue("高中", 55);
		dataset.setValue("大学", 100);
		
		JFreeChart chart = ChartFactory.createPieChart3D("学历分布图", dataset, true, true, true);
		
		Font font = new Font("黑体", Font.BOLD, 15);
		chart.getTitle().setFont(font);
		chart.getLegend().setItemFont(font);
		((PiePlot)chart.getPlot()).setLabelFont(font);
		
		ChartFrame frame = new ChartFrame("学历分布图", chart);
		frame.pack();
		frame.setVisible(true);
		ChartUtilities.saveChartAsJPEG(new File("d:/testPieChart.jpg"), chart, 1024, 768);
	}

	/**
	 * 
	 * 测试折线图
	 * 
	 * cjnetwork 2010-11-17下午05:21:07
	 */
	private static void testLineChart() throws Exception{
		
		DefaultCategoryDataset dataset = new DefaultCategoryDataset();
		
		dataset.addValue(100, "苹果", "2010-10-01");
		dataset.addValue(150, "香蕉", "2010-10-01");
		dataset.addValue(130, "葡萄", "2010-10-01");
		dataset.addValue(120, "梨", "2010-10-01");
		
		dataset.addValue(110, "苹果", "2010-10-02");
		dataset.addValue(160, "香蕉", "2010-10-02");
		dataset.addValue(70, "葡萄", "2010-10-02");
		dataset.addValue(145, "梨", "2010-10-02");
		
		dataset.addValue(150, "苹果", "2010-10-03");
		dataset.addValue(168, "香蕉", "2010-10-03");
		dataset.addValue(60, "葡萄", "2010-10-03");
		dataset.addValue(148, "梨", "2010-10-03");
		
		dataset.addValue(140, "苹果", "2010-10-04");
		dataset.addValue(190, "香蕉", "2010-10-04");
		dataset.addValue(60, "葡萄", "2010-10-04");
		dataset.addValue(163, "梨", "2010-10-04");
		
		JFreeChart chart = ChartFactory.createLineChart("水果产量图", "时间", "产量", dataset, PlotOrientation.VERTICAL, true, true, true);
		CategoryPlot plot = chart.getCategoryPlot();
		plot.getRangeAxis().setUpperMargin(0.15);
		
		Font font = new Font("黑体", Font.BOLD, 15);
		chart.getLegend().setItemFont(font);
		chart.getTitle().setFont(font);
		plot.getDomainAxis().setTickLabelFont(font);
		plot.getDomainAxis().setLabelFont(font);
		plot.getRangeAxis().setLabelFont(font);
		
		LineAndShapeRenderer lineAndShapeRenderer = (LineAndShapeRenderer) plot.getRenderer();
		lineAndShapeRenderer.setBaseLinesVisible(true);
		lineAndShapeRenderer.setBaseShapesVisible(true);
		lineAndShapeRenderer.setBaseItemLabelGenerator(new StandardCategoryItemLabelGenerator());
		lineAndShapeRenderer.setBaseItemLabelsVisible(true);
		
		ChartFrame frame = new ChartFrame("水果产量图", chart);
		frame.pack();
		frame.setVisible(true);	
		
		ChartUtilities.saveChartAsJPEG(new File("d:/testLineChart.jpg"), chart, 1024, 768);
	}
	
	
}

 

   

 

4
1
分享到:
评论
1 楼 hanzhenggang 2011-04-20  
图表工具有很多的,我最近看了有个叫做openflashchart(flash+js),还有一个叫做Highcharts(纯js,非常炫丽,但有liseen限制,调用的时候会访问它自己的网站获取脚本)

相关推荐

    jfreechart-1.0.19-jars.rar

    利用Java2D api,它目前支持条形图、饼图、折线图、xy图和时间序列图 包含 jfreechart-1.0.19-demo.jar(java 环境下点击就可以查看) 包含jar包 jfreechart-1.0.19.jar,jfreechart-1.0.19-swt.jar,jcommon-1.0.23...

    jfreechart-1.0.6-demo源码

    JFreeChart是一款流行的开源Java图表库,它提供了一系列丰富的图表类型,包括折线图、柱状图、饼图、散点图等,广泛应用于数据分析、报表生成以及GUI应用的可视化展示。在本文中,我们将深入探讨"jfreechart-1.0.6-...

    jfreechart-1.0.19-demo.src

    JFreeChart是一个流行的开源Java库,用于创建各种图表,如折线图、柱状图、饼图、散点图等。它提供了丰富的功能,使得开发者能够在Java应用程序中轻松地生成高质量的图形。这个“jfreechart-1.0.19-demo.src”压缩包...

    jfreechart,jfreechart-1.0.13,jfreechart-1.0.13,jfreechart

    JFreeChart是Java中最优秀的绘图工具之一,它支持多种图表类型,包括折线图、柱状图、饼图、散点图、甘特图以及复杂的组合图等。这些图表不仅适用于数据展示,还可以用于数据分析和报告生成,广泛应用于金融、科学、...

    jfreechart-1.0.0-pre2-install.pdf

    JFreeChart不仅支持常见的图表类型,如饼图、柱状图、折线图等,还支持一些高级图表类型,如时间序列图、散点图、甘特图等。此外,该库还包括了图表自定义样式的功能,允许开发者根据需求调整图表的外观。 #### ...

    JFreeChart 饼图,柱图,折线图

    JFreeChart是一款强大的Java图表库,它允许开发者创建多种类型的图表,包括饼图、柱状图和折线图。在Java应用中,JFreeChart是一个不可或缺的工具,尤其在数据分析、报表生成或可视化数据的场景下。下面我们将深入...

    jfreechart-1.0.1-demo.rar

    JFreeChart 是一个流行的开源Java库,用于创建各种图表,如饼图、柱状图、折线图、散点图以及时间序列图等。这个"jfreechart-1.0.1-demo.rar"文件是JFreeChart 1.0.1版本的演示程序,它包含了丰富的示例,帮助开发者...

    jfreechart-1.0.9-experimental.jar

    jfreechart-1.0.9-experimental 用于java后台绘制图形的jar包,如折线图 饼图 柱形图

    java绘制图表(柱状图、饼图、折线图)包 jfreechart

    这个库支持多种图表类型,包括柱状图、饼图和折线图,适用于数据分析、报告生成以及可视化展示等多种场景。在Java开发中,JFreeChart提供了一个简单易用的API,使得开发者可以轻松地将复杂的统计或业务数据转化为...

    jfreechart 生成折线图,饼图,柱状图,堆栈柱状图

    JFreeChart是一个流行的Java库,用于生成各种类型的图表,包括折线图、饼图和柱状图,甚至堆栈柱状图。这个压缩包中的"CreateChartServiceImpl.java"文件很可能包含了一个实现这些功能的服务类。 首先,我们要理解...

    jfreechart-0.9.1-US-v1 说明文档

    版本0.9.1-US-v1是一个重要的里程碑版本,提供了丰富的图表绘制功能,支持多种图表类型,包括饼图、柱状图、折线图等。此外,该版本还支持导出图表为PDF和SVG格式,满足了不同场景下的需求。 #### 二、文档结构与...

    java JXL导入导出Excel源码及jfreechart 生成折线图,饼图

    java JXL导出Excel源码及jfreechart 生成折线图,饼图 java JXL导出Excel源码及jfreechart 生成折线图,饼图 java JXL导出Excel源码及jfreechart 生成折线图,饼图

    JFreeChart饼图、折线图等资料学习

    JFreeChart是一款强大的Java图形库,它允许开发者创建多种类型的图表,包括饼图、折线图、柱状图、散点图以及更多其他类型的图表。这个资料包包含了JFreeChart的核心库(jfreechart-1.0.16.jar)和其依赖库JCommon...

    jfreechart-1.0.5-demo-all

    JFreeChart 是一个流行的 Java 图表库,它提供了丰富的图表类型,包括折线图、柱状图、饼图、散点图、甘特图等,适用于各种数据可视化需求。`jfreechart-1.0.5-demo-all` 包含了 JFreeChart 库的 1.0.5 版本的演示...

    jfreeChart---DEMO

    JFreeChart是一个流行的开源Java库,它提供了丰富的图表类型,包括折线图、柱状图、饼图、散点图等,用于生成高质量的2D图表。在本示例中,我们关注的是"jfreechart的折线图demo",它演示了如何通过Servlet封装数据...

    struts2-jfreechart-plugin-2.1.6.jar.zip_jfreechart struts2_jfree

    JFreeChart则是一个强大的Java库,用于生成各种类型的图表,如折线图、柱状图、饼图等,非常适合在Java应用程序中用于数据可视化。在Struts2中集成JFreeChart,可以方便地在Web应用中创建动态图表,例如展示统计信息...

    jfreechart-1.0.8-javadocs

    JFreeChart 是一个流行的开源 Java 图表库,它提供了一系列丰富的图表类型,包括折线图、柱状图、饼图、散点图、甘特图等,适用于各种数据可视化需求。`jfreechart-1.0.8-javadocs` 是 JFreeChart 1.0.8 版本的官方 ...

    jfreechart-1.0.13-ebook.zip

    1. **多样的图表类型**:JFreeChart 支持多种图表类型,如饼图、条形图、折线图、面积图、散点图、甘特图、热力图等,每种图表都有丰富的定制选项,可以满足各种数据分析和可视化需求。 2. **自定义样式**:开发者...

    jfreechart 饼图 折线图 实例

    jfreechart ,fusionchart 饼图 折线图 等实例

Global site tag (gtag.js) - Google Analytics