JFreeChart的用法简介

一、简介

           JFreeChartJAVA平台上的一个开放的图表绘制类库。它完全使用JAVA语言编写,是为applications, applets, servlets 以及JSP等使用所设计。

          JFreeChart可生成饼图(pie charts)、柱状图(bar charts)、散点图(scatter plots)、时序图(time series)、甘特图(Gantt charts)等等多种图表,并且可以产生PNGJPEG格式的输出,还可以与PDFEXCEL关联。


二、下载即jar包的导入

官方下载地址:

http://www.jfree.org/jfreechart/download.html

如果是开发Java应用程序只需导入:jfreechart-1.0.13.jar  和  jcommon-1.0.16.jar

如果是JavaWeb开发,并整合了struts2,则还需在struts/lib下导入struts2-jfreechart-plugin-2.3.4.jar


三、在struts2中使用JFreeChart的用例

1、绘制柱状图

BarGraphAction.java

package com.ahut.action;

import org.jfree.chart.ChartFactory;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.data.category.DefaultCategoryDataset;

import com.opensymphony.xwork2.ActionSupport;

public class BarGraphAction extends ActionSupport{
	private JFreeChart chart;

	public JFreeChart getChart() {
		DefaultCategoryDataset dcd = new DefaultCategoryDataset();//创建数据源
		dcd.setValue(1,"","科比");//设置数据源
		dcd.setValue(2,"","麦蒂");
		dcd.setValue(3,"","詹姆斯");
		//使用工厂类创建柱状图
		JFreeChart chart = ChartFactory.createBarChart3D(
				"你最喜欢的NBA球星",//标题
				"投票选项",//目录轴的显示标签
				"投票数", //数值轴的显示标签
				dcd,//数据集
				PlotOrientation.VERTICAL ,//图标方向
				false, //是否显示图例(简单的柱状图必须是false)
				true,//是否生成工具
				false);//是否生成URL连接
		return chart;
	}

	public void setChart(JFreeChart chart) {
		this.chart = chart;
	}
	
        public String execute(){
		return SUCCESS;
	}
}

 

在struts.xml中进行如下配置:

<package name="struts2" extends="jfreechart-default">	
 		<action name="barGraph" class="com.ahut.action.BarGraphAction">
 			<result name="success" type="chart"><!--以图表的形式显示-->
 				<param name="width">400</param>
 				<param name="height">300</param>
 			</result>
 		</action>
 	</package>

完成以上两个部分后,在程序中,访问到barGraph,就会显示一个柱状图。

 

2、绘制饼图
BChartAction.java

 

package com.ahut.action;

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

import com.opensymphony.xwork2.ActionSupport;

public class BChartAction extends ActionSupport{
     private JFreeChart chart;

	public JFreeChart getChart() {
	     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);
	     chart =  ChartFactory.createPieChart("CityInfoPort公司组织架构图",defaultpiedataset,true,true,false);
	     return chart;
	}

	public void setChart(JFreeChart chart) {
		this.chart = chart;
	}
                public String execute(){
		return SUCCESS;
	}
}

在struts.xml中进行如下配置:

<action name="bChart" class="com.ahut.action.BChartAction">
 			<result name="success" type="chart">
 				<param name="width">400</param>
 				<param name="height">300</param>
 			</result>
 </action>

 

3、绘制折线图

ZChartAction.java

package com.ahut.action;


import org.jfree.chart.ChartFactory;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.data.category.DefaultCategoryDataset;

import com.opensymphony.xwork2.ActionSupport;

public class ZChartAction extends ActionSupport{
	private JFreeChart chart;

	public JFreeChart getChart() {
		DefaultCategoryDataset linedataset = new DefaultCategoryDataset();
		  //  各曲线名称
		  String series1 = "冰箱";
		  String series2 = "彩电";
		  String series3 = "洗衣机"; 

		  //    横轴名称(列名称)
		  String type1 = "1月";
		  String type2 = "2月";
		  String type3 = "3月"; 

		  linedataset.addValue(0.0, series1, type1);
		  linedataset.addValue(4.2, series1, type2);
		  linedataset.addValue(3.9, series1, type3); 

		  linedataset.addValue(1.0, series2, type1);
		  linedataset.addValue(5.2, series2, type2);
		  linedataset.addValue(7.9, series2, type3); 

		  linedataset.addValue(2.0, series3, type1);
		  linedataset.addValue(9.2, series3, type2);
		  linedataset.addValue(8.9, series3, type3); 
		  
		  chart = ChartFactory.createLineChart("折线图", // chart title
				    "时间", // domain axis label
				    "销售额(百万)", // range axis label
				    linedataset, // data
				    PlotOrientation.VERTICAL, // orientation
				    true, // include legend
				    true, // tooltips
				    false // urls
				    );
		return chart;
	}

	public void setChart(JFreeChart chart) {
		this.chart = chart;
	}
	public String execute(){
		return SUCCESS;
	}
}

 

在struts.xml中进行如下配置:

<action name="zChart" class="com.ahut.action.ZChartAction">
 			<result name="success" type="chart">
 				<param name="width">400</param>
 				<param name="height">300</param>
 			</result>
</action>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值