1.折線圖
<%@ page contentType="text/html;charset=GBK"%>
<%@ page import="java.awt.Color"%>
<%@ page import = "org.jfree.chart.ChartFactory,
org.jfree.chart.ChartPanel,
org.jfree.chart.JFreeChart,
org.jfree.chart.DefaultOldLegend,
org.jfree.chart.axis.NumberAxis,
org.jfree.chart.plot.CategoryPlot,
org.jfree.chart.plot.PlotOrientation,
org.jfree.chart.renderer.category.LineAndShapeRenderer,
org.jfree.data.category.CategoryDataset,
org.jfree.data.category.DefaultCategoryDataset,
org.jfree.chart.servlet.ServletUtilities
"%>
<%@ page import="org.jfree.chart.axis.CategoryAxis"%>
<%@ page import="org.jfree.chart.axis.CategoryLabelPositions"%>
<%@ page import="org.jfree.data.general.DatasetUtilities"%>
<jsp:directive.page import="org.jfree.chart.labels.StandardCategoryItemLabelGenerator"/>
<%
String[] rowKeys= null;//柱數據
String[] columnKeys=null;//刻度數據
rowKeys = new String[]{"219.146.1.196","219.146.10.105","219.146.10.116","219.146.10.73"};
columnKeys = new String[]{"2008年7月上旬","2007-02-04"};
double[][] data = new double[rowKeys.length][columnKeys.length];
data = new double[][]{
{1022.0,856.0},{676.0,13563.0},{12827.0,10576.0},{0.0,100.0}
};
CategoryDataset dataset = DatasetUtilities.createCategoryDataset(rowKeys, columnKeys, data);
JFreeChart chart = ChartFactory.createLineChart(
"這是測試標題...",
"時間",
"訪問量", // range axis label
dataset, // data
PlotOrientation.VERTICAL, // orientation
true, // include legend
true, // tooltips
false // urls
);
chart.setBackgroundPaint(Color.WHITE); //-----------------------------背景色
chart.setBorderVisible(true); //--------------------------------------設置邊框是否可見
chart.setBorderPaint(Color.BLUE); //-----------------------------------設置邊框顏色setBorderVisible()必須為true
CategoryPlot plot = chart.getCategoryPlot();
plot.setBackgroundPaint(Color.CYAN);
CategoryAxis domainAxis = plot.getDomainAxis();
domainAxis.setCategoryLabelPositions(CategoryLabelPositions.DOWN_45);
plot.setDomainAxis(domainAxis);
// customise the range axis... 設置統計圖中只顯示整數
NumberAxis rangeAxis = (NumberAxis) plot.getRangeAxis();
rangeAxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits());
rangeAxis.setAutoRangeIncludesZero(true);
rangeAxis.setUpperMargin(0.20);
rangeAxis.setLabelAngle(Math.PI / 2.0);
LineAndShapeRenderer renderer = (LineAndShapeRenderer) plot.getRenderer();
renderer.setItemLabelsVisible(true);
renderer.setShapesVisible(true);//series 點(即數據點)可見
renderer.setSeriesPaint(0, new Color(0, 0, 255));
renderer.setSeriesPaint(1, new Color(255, 0, 255));
renderer.setSeriesPaint(2, new Color(0, 255, 255));
renderer.setSeriesPaint(3, new Color(0,125,0));
renderer.setItemLabelGenerator(new StandardCategoryItemLabelGenerator());
renderer.setItemLabelsVisible(true);
String filename = ServletUtilities.saveChartAsPNG(chart, 850, 550, null, session);
String graphURL = request.getContextPath() + "/servlet/DisplayChart?filename=" + filename;
%>
<br>
<link href="css/default.css" rel="stylesheet" type="text/css">
<center>
<img src="<%= graphURL %>" width=850 height=550 border=0 usemap="#<%= filename %>">
2.餅狀圖
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@ page import="java.io.FileOutputStream"%>
<%@ page import="java.io.IOException"%>
<%@ page import="java.io.*"%>
<%@ page import="java.awt.Color"%>
<%@ page import="java.awt.*"%>
<%@ page import="java.awt.event.*"%>
<%@ page import="javax.swing.*"%>
<%@ page import="org.jfree.chart.*"%>
<%@ page import="org.jfree.data.*"%>
<%@ page import="org.jfree.data.general.*"%>
<%@ page import="org.jfree.data.category.*"%>
<%@ page import="org.jfree.chart.plot.PlotOrientation"%>
<%@ page import="org.jfree.data.category.CategoryDataset"%>
<%@ page import="org.jfree.data.category.DefaultCategoryDataset"%>
<%@ page import="org.jfree.ui.ApplicationFrame"%>
<%@ page import="org.jfree.chart.plot.CategoryPlot"%>
<%@ page import="org.jfree.chart.axis.NumberAxis"%>
<%@ page import="org.jfree.chart.renderer.category.LineAndShapeRenderer"%>
<%@ page import="org.jfree.chart.renderer.category.*"%>
<%@ page import="org.jfree.chart.renderer.category.LineAndShapeRenderer"%>
<%@ page import="org.jfree.chart.plot.PiePlot"%>
<%@page import ="org.jfree.chart.labels.StandardCategoryItemLabelGenerator"%>
<%@page import ="org.jfree.chart.renderer.category.BarRenderer3D"%>
<%@ page import="org.jfree.data.general.DefaultPieDataset"%>
<%@ page import="org.jfree.chart.*"%>
<%@ page import="org.jfree.chart.plot.*"%>
<%@ page import="org.jfree.chart.servlet.ServletUtilities"%>
<%@ page import="org.jfree.chart.urls.StandardPieURLGenerator"%>
<%@ page import="org.jfree.chart.entity.StandardEntityCollection"%>
<%
DefaultPieDataset data = new DefaultPieDataset();
//數據初始化
data.setValue("高中以下",380);
data.setValue("高中",1620);
data.setValue("大專",6100);
data.setValue("本科",8310);
data.setValue("碩士",3520);
data.setValue("博士",1900);
//HttpSession session = request.getSession();
PiePlot plot = new PiePlot(data);//生成一個3D餅圖
//plot.setURLGenerator(new StandardPieURLGenerator("DegreedView.jsp"));//設定圖片鏈接
JFreeChart chart = new JFreeChart("",JFreeChart.DEFAULT_TITLE_FONT, plot, true);
chart.setBackgroundPaint(java.awt.Color.white);//可選,設置圖片背景色
chart.setTitle("程序員學歷情況調查表-By Alpha");//可選,設置圖片標題
//plot.setToolTipGenerator(new StandardPieURLGenerator());
StandardEntityCollection sec = new StandardEntityCollection();
ChartRenderingInfo info = new ChartRenderingInfo(sec);
PrintWriter w = new PrintWriter(out);//輸出MAP信息
//500是圖片長度,300是圖片高度
//String filename = ServletUtilities.saveChartAsPNG(chart,500,300,info,session);
String filename = ServletUtilities.saveChartAsJPEG(chart,500,300,info,session);
ChartUtilities.writeImageMap(w,"map0",info,false);
String graphURL = request.getContextPath() + "/servlet/DisplayChart?filename=" + filename;
%>
<img src="<%= graphURL %>" width=500 height=300 border=0 usemap="#map0">
3.柱狀圖
<%@ page language="java" import="java.util.*" pageEncoding="GBK"%>
<jsp:directive.page import="org.jfree.data.general.DatasetUtilities"/>
<jsp:directive.page import="org.jfree.chart.JFreeChart"/>
<jsp:directive.page import="org.jfree.chart.ChartFactory"/>
<jsp:directive.page import="org.jfree.chart.plot.PlotOrientation"/>
<jsp:directive.page import="java.awt.Color"/>
<jsp:directive.page import="org.jfree.chart.plot.CategoryPlot"/>
<jsp:directive.page import="org.jfree.chart.axis.CategoryAxis"/>
<jsp:directive.page import="org.jfree.chart.axis.CategoryLabelPositions"/>
<jsp:directive.page import="org.jfree.chart.axis.NumberAxis"/>
<jsp:directive.page import="org.jfree.chart.servlet.ServletUtilities"/>
<jsp:directive.page import="org.jfree.data.category.CategoryDataset"/>
<jsp:directive.page import="org.jfree.chart.renderer.category.BarRenderer3D"/>
<jsp:directive.page import="org.jfree.chart.labels.StandardCategoryItemLabelGenerator"/>
<jsp:directive.page import="org.jfree.chart.axis.AxisLocation"/>
<jsp:directive.page import="java.text.DecimalFormat"/>
<%
String[] rowInfo = new String[]{"one","two"};
String[] colInfo = new String[]{"first","second"};
double[][] dataInfo = new double[2][2];
dataInfo = new double[][]{
{1022.0,856.0},{676.0,13563.0}
};
CategoryDataset data = DatasetUtilities.createCategoryDataset(rowInfo,colInfo,dataInfo);
JFreeChart chart = ChartFactory.createBarChart3D("this is test......",
"row",
"col",
data,
PlotOrientation.VERTICAL,
true,false,false);
chart.setAntiAlias(true);
chart.setBackgroundPaint(Color.WHITE);
chart.setBorderPaint(Color.BLACK);
chart.setBorderVisible(true);
//圖表區域對象,基本上這個對象決定著什么樣式的圖表,創建該對象的時候需要Axis、Renderer以及數據集對象的支持
CategoryPlot plot = chart.getCategoryPlot();
plot.setDomainGridlinePaint(Color.RED); //橫坐標網格線白色
plot.setDomainGridlinesVisible(true); //可見
plot.setBackgroundPaint(Color.CYAN);
//用于處理圖表的兩個軸:縱軸和橫軸
CategoryAxis axis = plot.getDomainAxis();
axis.setCategoryLabelPositions(CategoryLabelPositions.UP_45);
axis.setAxisLinePaint(Color.RED);
//axis.setLabel("asdfasdfa");
//axis.setUpperMargin(5);
axis.setTickMarksVisible(true);
axis.setAxisLineVisible(true);
NumberAxis numberaxis = (NumberAxis)plot.getRangeAxis();
numberaxis.setAutoTickUnitSelection(true);
numberaxis.setAutoRangeIncludesZero(false);
BarRenderer3D renderer = new BarRenderer3D();
renderer.setItemLabelGenerator(new StandardCategoryItemLabelGenerator());
renderer.setItemLabelsVisible(true);
renderer.setBaseOutlinePaint(Color.BLACK);
//設置 Wall 的顏色
renderer.setWallPaint(Color.GREEN);
//設置每種柱的顏色
//renderer.setSeriesPaint(0, new Color(0, 0, 255));
//renderer.setSeriesPaint(1, new Color(0, 100, 255));
//設置平行柱之間距離
renderer.setItemMargin(0.02);
//顯示每個柱的數值,并修改該數值的字體屬性
//renderer.setItemLabelGenerator(new StandardCategoryItemLabelGenerator());
//renderer.setItemLabelsVisible(true);
plot.setRenderer(renderer);
//設置柱的透明度
plot.setForegroundAlpha(0.8f);
//設置地區、銷量的顯示位置
plot.setDomainAxisLocation(AxisLocation.TOP_OR_RIGHT);
plot.setRangeAxisLocation(AxisLocation.BOTTOM_OR_RIGHT);
String filename = ServletUtilities.saveChartAsPNG(chart, 850, 550, null, session);
String graphURL = request.getContextPath() + "/servlet/DisplayChart?filename=" + filename;
%>
<center>
<img src="<%= graphURL %>" width=850 height=550 border=0 usemap="#<%= filename %>">