JFreeChart入门教程

1.下载JFreeChart所需压缩包,其中source是源码

下载地址:http://download.csdn.net/detail/m0_37983376/9864574

2.jar包

我们需要关注的文件有如下三个:jfreechart-1.0.19.jarlib\jcommon-1.0.23.jar lib\gnujaxp.jar 

将他们导入到web项目的lib目录下

3.功能介绍

基本图形:

pie charts (2D and 3D):饼图(平面和立体) 

    bar charts (regular andstacked, with an optional 3D effect):柱状图 

line and area charts:曲线图 

scatter plots and bubblecharts 

    time series,high/low/open/close charts and candle stick charts:时序图 

   combination charts:复合图 

    Pareto charts 

    Gantt charts:甘特图 

    wind plots, meter charts andsymbol charts 

    wafer map charts 

4.JFreeChart的核心

org.jfree.chart:主要与图形有关   

org.jfree.data:主要与图形上的数据有关

核心类主要有: 
           org.jfree.chart.JFreeChart:图表对象,任何类型的图表的最终表现形式都是在该对象进行一些属性的定制。JFreeChart引擎本身提供了一个工厂类用于创建不同类型的图表对象 
           org.jfree.data.category.XXXDataSet:数据集对象,用于提供显示图表所用的数据。根据不同类型的图表对应着很多类型的数据集对象类 
           org.jfree.chart.plot.XXXPlot:图表区域对象,基本上这个对象决定着什么样式的图表,创建该对象的时候需要AxisRenderer以及数据集对象的支持 
           org.jfree.chart.axis.XXXAxis:用于处理图表的两个轴:纵轴和横轴 
           org.jfree.chart.render.XXXRender:负责如何显示一个图表对象 
           org.jfree.chart.urls.XXXURLGenerator:用于生成Web图表中每个项目的鼠标点击链接 
           XXXXXToolTipGenerator:用于生成图象的帮助提示,不同类型图表对应不同类型的工具提示类 

5.实例(饼图)

package Demo;

/**
 *@author sq
 *
 */

import java.awt.Font;

import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartFrame;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.StandardChartTheme;
import org.jfree.data.general.DefaultPieDataset;

public class FirstJFreeChart {
	public FirstJFreeChart() {
	}

	public static void main(String[] args) {
		DefaultPieDataset dpd = new DefaultPieDataset();
		dpd.setValue("管理人员", 25);
		dpd.setValue("市场人员", 25);
		dpd.setValue("开发人员", 45);
		dpd.setValue("其他人员", 5);
		// 创建主题样式
		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);
		// Create JFreeChart object
		// 参数可以查看源码
		JFreeChart pieChart = ChartFactory.createPieChart(
				"CityInfoPort公司组织架构图", dpd, true, true, false);
		ChartFrame pieFrame = new ChartFrame("CityInfoPort公司组织架构图", pieChart);
		pieFrame.pack();
		pieFrame.setVisible(true);
	}
}


注意:如果此处没有对饼图的文字字体进行定义,可能会无法正常显示


改进代码

package Demo;

/**
 *@author sq
 *
 */

import java.awt.Font;
import javax.swing.JPanel;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.StandardChartTheme;
import org.jfree.chart.plot.PiePlot;
import org.jfree.data.general.DefaultPieDataset;
import org.jfree.data.general.PieDataset;
import org.jfree.ui.ApplicationFrame;
import org.jfree.ui.RefineryUtilities;

public class FirstJFreeChart extends ApplicationFrame {
	// 构造函数
	public FirstJFreeChart(String s) {
		super(s);
		setContentPane(createDemoPanel());
	}
	public static void main(String[] args) {
		FirstJFreeChart fjc = new FirstJFreeChart("CityInfoPort公司组织架构图");
		fjc.pack();
		RefineryUtilities.centerFrameOnScreen(fjc);
		fjc.setVisible(true);
	}
	// 生成饼图数据集对象
	public static PieDataset createDataset() {
		DefaultPieDataset defaultpiedataset = new DefaultPieDataset();
		defaultpiedataset.setValue("管理人员", 10.02D);
		defaultpiedataset.setValue("市场人员", 20.23D);
		defaultpiedataset.setValue("开发人员", 60.02D);
		defaultpiedataset.setValue("OEM人员", 10.02D);
		defaultpiedataset.setValue("其他人员", 5.11D);

		return defaultpiedataset;
	}
	// 生成图表主对象JFreeChart
	public static JFreeChart createChart(PieDataset piedataset) {
		// 创建主题样式
		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);
		// 定义图表对象
		JFreeChart jfreechart = ChartFactory.createPieChart(
				"CityInfoPort公司组织架构图", piedataset, true, true, false);
		// 获得图表显示对象
		PiePlot pieplot = (PiePlot) jfreechart.getPlot();
		// 设置图表标签字体
		pieplot.setLabelFont(new Font("SansSerif", Font.BOLD, 12));
		pieplot.setNoDataMessage("No data available");
		pieplot.setCircular(true);
		pieplot.setLabelGap(0.01D);// 间距

		return jfreechart;
	}
	// 生成显示图表的面板
	public static JPanel createDemoPanel() {
		JFreeChart jfreechart = createChart(createDataset());
		return new ChartPanel(jfreechart);
	}
}




详细见:http://www.yiibai.com/jfreechart/jfreechart_bar_chart.html

  • 2
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值