![]() |
|
下面通过查找资料做可两个Demo,只有饼图和柱状图的,其它的请各位自己研究了,大同小异. 下面来说说,首先到官方网站下不到开发必须的两个包:jcommon-1.0.0.jar,jfreechart-1.0.0-rc1.jar,就随便找了两个,版本不高,但是够用,下面就贴出调试过的代码:
<%@ page language="java" pageEncoding="GBK"%>
<%@ page import="org.jfree.data.general.DefaultPieDataset"%>
<%@ page import="org.jfree.chart.*"%>
<%@ page import="org.jfree.chart.plot.*"%>
<%@ page import="org.jfree.chart.labels.StandardPieSectionLabelGenerator"%>
<%@ page import="org.jfree.chart.servlet.ServletUtilities"%>
<%@ page import="org.jfree.chart.urls.StandardPieURLGenerator"%>
<%@ page import="org.jfree.chart.entity.StandardEntityCollection"%>
<%@ page import="java.io.*"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GBK">
<title>Insert title here</title>
</head>
<body>
<% DefaultPieDataset data = new DefaultPieDataset();
data.setValue("高中以下",3700);
data.setValue("高中",1530);
data.setValue("大专",5700);
data.setValue("本科",8280);
data.setValue("硕士",4420);
data.setValue("博士",8000);
PiePlot3D plot = new PiePlot3D(data);//3D饼图
plot.setURLGenerator(new StandardPieURLGenerator("barview.jsp"));//设定链接
JFreeChart chart = new JFreeChart("",JFreeChart.DEFAULT_TITLE_FONT, plot, true); //
chart.setBackgroundPaint(Color.white);//可选,设置图片背景色
chart.setTitle("程序员学历情况调查表");//可选,设置图片标题 //
plot.setToolTipGenerator(new StandardPieSectionLabelGenerator());
StandardEntityCollection sec = new StandardEntityCollection();
ChartRenderingInfo info = new ChartRenderingInfo(sec);
response.setContentType("text/html;charset=UTF-8");
PrintWriter w = new PrintWriter(out);//输出MAP信息 //500是图片长度,300是图片高度 String filename = ServletUtilities.saveChartAsPNG(chart, 500, 300, info, session); ChartUtilities.writeImageMap(w, "map0", info, false); String graphURL = request.getContextPath() + "/servlet/DisplayChart?filename=" + filename;%>
<%@ page import="org.jfree.chart.ChartFactory, org.jfree.chart.JFreeChart, org.jfree.chart.plot.PlotOrientation, org.jfree.chart.servlet.ServletUtilities, org.jfree.data.category.*"%>
<% CategoryDataset dataset; String category="硕士";
if(category.equals("本科")||category.equals("高中")||category.equals("大专")){
dataset=getDataSet();
out.print(dataset.getColumnCount());
}
else if(category.equals("硕士")||category.equals("博士")) {
dataset=getDataSet2();
}else
{
dataset=getDataSet3();
}
String title=category+"程序员在各城市薪金情况统计";
JFreeChart chart1 = ChartFactory.createBarChart3D(title, "城市", "薪金", dataset, PlotOrientation.VERTICAL,true,false,false);
String filename1 = ServletUtilities.saveChartAsPNG(chart1, 500, 300, null, session);
String graphURL1 = request.getContextPath() + "/servlet/DisplayChart?filename=" + filename1; %>
<P ALIGN="CENTER">
<img src="<%= graphURL %>" width=500 height=300 border=0 usemap="#<%= filename %>">
</P>
<%!
public static CategoryDataset getDataSet() {
DefaultCategoryDataset dataset = new DefaultCategoryDataset();
dataset.addValue(2000, "北京", "VB");
dataset.addValue(1800, "上海", "VB");
dataset.addValue(2200, "广州", "VB");
dataset.addValue(3200, "北京", "JAVA");
dataset.addValue(3500, "上海", "JAVA");
dataset.addValue(3600, "广州", "JAVA");
dataset.addValue(3300, "北京", "DOT NET");
dataset.addValue(3400, "上海", "DOT NET");
dataset.addValue(3700, "广州", "DOT NET");
dataset.addValue(2500, "北京", "DELPHI");
dataset.addValue(2800, "上海", "DELPHI");
dataset.addValue(3200, "广州", "DELPHI");
dataset.addValue(5000, "北京", "VC");
dataset.addValue(3500, "上海", "VC");
dataset.addValue(4600, "广州", "VC"); return dataset;
}
[1] [2]