<%@page contentType="text/html; charset=gb2312" %>
<%@ taglib uri="struts-logic.tld" prefix="logic" %>
<%@ taglib uri="struts-bean.tld" prefix="bean" %>
<%@ taglib uri="struts-html.tld" prefix="html" %>
<%@ page import="java.util.*" %>
<%@ page import="java.awt.*" %>
<%@ page import = "org.jfree.chart.*,
org.jfree.data.*,
org.jfree.data.general.DefaultPieDataset,
org.jfree.chart.plot.PiePlot,
org.jfree.chart.plot.PiePlot3D,
org.jfree.chart.axis.NumberAxis,
org.jfree.chart.plot.CategoryPlot,
org.jfree.chart.plot.PlotOrientation,
org.jfree.chart.servlet.ServletUtilities,
org.jfree.data.category.DefaultCategoryDataset,
org.jfree.chart.labels.*,
org.jfree.chart.renderer.category.LineAndShapeRenderer,
org.jfree.data.general.DatasetUtilities,
org.jfree.chart.renderer.category.BarRenderer3D,
org.jfree.data.category.CategoryDataset,
org.jfree.chart.axis.CategoryAxis,
org.jfree.chart.axis.AxisLocation,
org.jfree.chart.axis.ValueAxis,
org.jfree.chart.renderer.category.BarRenderer3D"
%>
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</HEAD>
<%
/**
*一个表格式的数据用图片显示出来
* 北京 上海 广州 成都 深圳
* 苹果 672 766 223 540 126
* 梨子 325, 521, 210, 340, 106
* 葡萄 332, 256, 523, 240, 526
*/
//每一行的数据
double[][] data = new double[][] {{672, 766, 223, 540, 126}, {325, 521, 210, 340, 106}, {332, 256, 523, 240, 526} };
//每一行的行标题
String [] rowKeys={"苹果","梨子","葡萄"};
//每一列的标题
String [] columnKeys={"北京","上海","广州","成都"),"深圳"};
/**
* 第一种添加数据的方式
*/
//CategoryDataset bardata=DatasetUtilities.createCategoryDataset(rowKeys,columnKeys,data);
/**
* createBarChart3D方法是ChartFactory工厂类里的一个方法,用于3D柱状图的生成,
*该类继承自JFreeChart。其中的八个参数分别代表:图形的标题、
* X轴标题、
* Y轴标题、
* dataset就是CategoryDataset类的实例对象、
* 柱状的的显示方式,本例是水平
* 显示柱状颜色代表的含义、
* 启用热键、//一般不用(false)
* 启用超键接。//一般不用(false)
*/
/**
*第二种添加数据的方式
*/
DefaultCategoryDataset bardata = new DefaultCategoryDataset();
for(int i=0;i<3;i++)
{
for(int j=0;j<5;j++)
{
bardata.addValue(data[i][j],rowKeys[i],columnKeys[j]);
System.out.println("new !");
}
}
JFreeChart chart = ChartFactory.createLineChart(
"", // chart title
"", // domain axis label
"万元", // range axis label
bardata, // data
PlotOrientation.VERTICAL, // orientation
true, // include legend
false, // tooltips
false // urls
);
// NOW DO SOME OPTIONAL CUSTOMISATION OF THE CHART...
/*StandardLegend legend = (StandardLegend) chart.getLegend();
legend.setDisplaySeriesShapes(true);
legend.setShapeScaleX(1.5);
legend.setShapeScaleY(1.5);
legend.setDisplaySeriesLines(true);
*/
CategoryPlot plot = chart.getCategoryPlot();
// customise the range axis...
NumberAxis rangeAxis = (NumberAxis) plot.getRangeAxis();
rangeAxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits());
rangeAxis.setAutoRangeIncludesZero(true);
rangeAxis.setUpperMargin(0.10);//纵轴的间隔比例
rangeAxis.setLabelAngle(Math.PI / 10.0);//纵轴标签角度
LineAndShapeRenderer renderer = (LineAndShapeRenderer) plot.getRenderer();
//renderer.setItemLabelGenerator(new StandardCategoryItemLabelGenerator());//显示折点数据
renderer.setItemLabelsVisible(true);
//把对象保存到session中
String filename = ServletUtilities.saveChartAsPNG(chart, 700, 350, null, session);
//得到路径
String graphURL = request.getContextPath() + "/servlet/DisplayChart?filename=" + filename;
%>
<body>
<IMG height=350 src="<%=graphURL%>" width=700 useMap="#<%=filename%>" border=0>
</body>