⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 chartdata.java

📁 使用jfreechart制作jsp图形统计
💻 JAVA
字号:
package com.util;

import java.util.Calendar;
import java.util.Date;

import org.jfree.data.category.CategoryDataset;
import org.jfree.data.category.IntervalCategoryDataset;
import org.jfree.data.gantt.Task;
import org.jfree.data.gantt.TaskSeries;
import org.jfree.data.gantt.TaskSeriesCollection;
import org.jfree.data.general.DatasetUtilities;
import org.jfree.data.general.DefaultPieDataset;
import org.jfree.data.general.SeriesException;
import org.jfree.data.time.Day;
import org.jfree.data.time.SimpleTimePeriod;
import org.jfree.data.time.TimeSeries;
import org.jfree.data.time.TimeSeriesCollection;
import org.jfree.data.xy.DefaultOHLCDataset;
import org.jfree.data.xy.DefaultXYZDataset;
import org.jfree.data.xy.OHLCDataItem;
import org.jfree.data.xy.XYDataset;
import org.jfree.data.xy.XYSeries;
import org.jfree.data.xy.XYSeriesCollection;
import org.jfree.data.xy.XYZDataset;

public class ChartData {
	/**
	 * @param CategoryDataset
	 *            支持: createLineChart 2D折线图 createLineChart3D 3D折线图
	 *            createAreaChart 面积图 createStackedAreaChart 堆积面积图
	 *            createStackedXYAreaChart 数据点堆积面积图 createBarChart 2D柱图
	 *            createBarChart3D 3D柱图 createBarChart 2D柱线图 createBarChart3D
	 *            3D柱线图 createStackedBarChart 2D堆积柱图 createStackedBarChart3D
	 *            3D堆积柱图 createMultiplePieChart 2D复合饼状图 createMultiplePieChart3D
	 *            3D复合饼状图 createWaterfallChart 瀑布图
	 * 
	 * @return CategoryDataset
	 */

	public static CategoryDataset getCategoryDataset() {
		String[] rowKeys = { "测试数据一", "测试数据二", "测试数据三" };
		String[] columnKeys = { "x1x", "x2x", "x3x", "x4x", "x5x" };
		double[][] data = new double[][] { { 672, 766, 223, 540, 126 },
				{ 325, 521, 210, 340, 106 }, { 332, 256, 523, 240, 526 } };

		CategoryDataset dataset = DatasetUtilities.createCategoryDataset(
				rowKeys, columnKeys, data);
		return dataset;
	}

	/**
	 * @param XYSeriesCollection
	 *            支持: createXYLineChart XY数据点折线图 createXYAreaChart XY数据点面积图
	 *            createXYStepAreaChart XY数据点阶梯面积图 createXYBarChart XY数据点柱状图
	 *            createScatterPlot 散点图 createHistogram 组织图 createPolarChart 雷达图
	 * 
	 * @return XYSeriesCollection
	 */

	public static XYSeriesCollection getXYSeriesCollection() {
		/*
		 * double[] data1 = { 60, 55, 61, 58, 48, 43, 47, 61, 58, 55, 61, 58 };
		 * double[] data2 = { 40, 48, 43, 47, 55, 61, 58, 55, 48, 43, 47, 58 };
		 * XYSeries xyseries = null; if (data1 != null && data2 != null) { if
		 * (data1.length == data2.length) { xyseries = new XYSeries(""); for
		 * (int i = 0; i < data1.length; i++) { xyseries.add(data1[i],
		 * data2[i]); } } } XYSeriesCollection xyseriescollection = new
		 * XYSeriesCollection(); xyseriescollection.addSeries(xyseries);
		 */

		XYSeriesCollection xyseriescollection = new XYSeriesCollection();
		XYSeries xyseries = new XYSeries("测试一");
		xyseries.add(0.0D, 2D);
		xyseries.add(90D, 13D);
		xyseries.add(180D, 9D);
		xyseries.add(270D, 8D);
		xyseriescollection.addSeries(xyseries);
		XYSeries xyseries1 = new XYSeries("测试二");
		xyseries1.add(90D, -11.199999999999999D);
		xyseries1.add(180D, 21.399999999999999D);
		xyseries1.add(250D, 17.300000000000001D);
		xyseries1.add(355D, 10.9D);
		xyseriescollection.addSeries(xyseries1);

		return xyseriescollection;
	}

	/**
	 * @param DefaultPieDataset
	 *            支持: createPieChart 2D饼状图 createPieChart3D 3D饼状图
	 *            createRingChart 环形图
	 * 
	 * @return DefaultPieDataset
	 */

	public static DefaultPieDataset getDefaultPieDataset() {
		double[] data = { 60, 15, 10, 15 };
		String[] keys = { "测试数据一", "测试数据二", "测试数据三", "测试数据四" };
		DefaultPieDataset dataset = null;

		if (data != null && keys != null) {
			if (data.length == keys.length) {
				dataset = new DefaultPieDataset();
				for (int i = 0; i < data.length; i++) {
					dataset.setValue(keys[i], data[i]);
				}
			}
		}
		return dataset;
	}

	/**
	 * @param DefaultXYZDataset
	 *            支持: createTimeSeriesChart 时序图 createBubbleChart 气泡图
	 * 
	 * @return DefaultXYZDataset
	 */

	public static DefaultXYZDataset getDefaultXYZDataset() {
		DefaultXYZDataset defaultXYZDataset = new DefaultXYZDataset();

		double[] x1 = new double[] { 1.0, 2.0, 3.0 };
		double[] y1 = new double[] { 4.0, 5.0, 6.0 };
		double[] z1 = new double[] { 7.0, 8.0, 9.0 };
		double[][] data1 = new double[][] { x1, y1, z1 };
		defaultXYZDataset.addSeries("测试一", data1);

		double[] x2 = new double[] { 1.0, 2.0, 3.0 };
		double[] y2 = new double[] { 4.0, 5.0, 6.0 };
		double[] z2 = new double[] { 7.0, 8.0, 9.0 };
		double[][] data2 = new double[][] { x2, y2, z2 };
		defaultXYZDataset.addSeries("测试二", data2);

		return defaultXYZDataset;
	}

	/**
	 * @param XYZDataset
	 *            支持:createBubbleChart 气泡图
	 * 
	 * @return XYZDataset
	 */

	public static XYZDataset getXYZDataset() {
		DefaultXYZDataset defaultXYZDataset = new DefaultXYZDataset();

		double[] x1 = new double[] { 1.0 };
		double[] y1 = new double[] { 4.0 };
		double[] z1 = new double[] { 7.0 };
		double[][] data1 = new double[][] { x1, y1, z1 };
		defaultXYZDataset.addSeries("测试一", data1);
		XYZDataset xyzdataset = (XYZDataset) defaultXYZDataset;

		return xyzdataset;
	}

	/**
	 * @param XYDataset
	 *            支持:XYDataset 时序图
	 * 
	 * @return XYDataset
	 */

	public static XYDataset getXYDataset() {
		TimeSeries timeseries = new TimeSeries("Random Data");
		Day day = new Day(1, 1, 1990);
		double d = 100D;
		for (int j = 0; j < 4000; j++) {
			try {
				d = (d + Math.random()) - 0.5D;
				timeseries.add(day, new Double(d));
				day = (Day) day.next();
			} catch (SeriesException seriesexception) {
				System.err.println("Error adding to series");
			}
		}
		XYDataset xydataset = new TimeSeriesCollection(timeseries);
		return xydataset;
	}

	/**
	 * @param DefaultOHLCDataset
	 *            支持: createHighLowChart 股价图 createCandlestickChart 烛台图
	 * 
	 * @return DefaultOHLCDataset
	 */

	public static DefaultOHLCDataset getDefaultOHLCDataset() {
		OHLCDataItem[] data = new OHLCDataItem[10];

		data[0] = new OHLCDataItem(new Date(11L), 2.0, 4.0, 1.0, 3.0, 100.0);
		data[1] = new OHLCDataItem(new Date(22L), 4.0, 9.0, 2.0, 5.0, 120.0);
		data[2] = new OHLCDataItem(new Date(33L), 3.0, 7.0, 3.0, 6.0, 140.0);
		data[3] = new OHLCDataItem(new Date(25L), 2.0, 4.0, 1.0, 3.0, 100.0);
		data[4] = new OHLCDataItem(new Date(47L), 4.0, 9.0, 2.0, 5.0, 120.0);
		data[5] = new OHLCDataItem(new Date(58L), 3.0, 7.0, 3.0, 6.0, 140.0);
		data[6] = new OHLCDataItem(new Date(60L), 2.0, 4.0, 1.0, 3.0, 100.0);
		data[7] = new OHLCDataItem(new Date(44L), 4.0, 9.0, 2.0, 5.0, 120.0);
		data[8] = new OHLCDataItem(new Date(38L), 3.0, 7.0, 3.0, 6.0, 140.0);
		data[9] = new OHLCDataItem(new Date(40L), 3.0, 7.0, 3.0, 6.0, 140.0);

		DefaultOHLCDataset defaultHighLowDataset = new DefaultOHLCDataset(
				"OHLCDataset", data);
		return defaultHighLowDataset;
	}

	/**
	 * @param IntervalCategoryDataset
	 *            支持: createGanttChart 甘特图
	 * 
	 * @return IntervalCategoryDataset
	 */

	public static IntervalCategoryDataset getIntervalCategoryDataset() {
		TaskSeriesCollection taskSeriesCollection = new TaskSeriesCollection();

		TaskSeries s1 = new TaskSeries("Scheduled");
		s1.add(new Task("Write Proposal", new SimpleTimePeriod(date(1,
				Calendar.APRIL, 2001), date(5, Calendar.APRIL, 2001))));
		s1.add(new Task("Obtain Approval", new SimpleTimePeriod(date(9,
				Calendar.APRIL, 2001), date(9, Calendar.APRIL, 2001))));
		s1.add(new Task("Requirements Analysis", new SimpleTimePeriod(date(10,
				Calendar.APRIL, 2001), date(5, Calendar.MAY, 2001))));
		s1.add(new Task("Design Phase", new SimpleTimePeriod(date(6,
				Calendar.MAY, 2001), date(30, Calendar.MAY, 2001))));
		s1.add(new Task("Design Signoff", new SimpleTimePeriod(date(2,
				Calendar.JUNE, 2001), date(2, Calendar.JUNE, 2001))));
		s1.add(new Task("Alpha Implementation", new SimpleTimePeriod(date(3,
				Calendar.JUNE, 2001), date(31, Calendar.JULY, 2001))));
		s1.add(new Task("Design Review", new SimpleTimePeriod(date(1,
				Calendar.AUGUST, 2001), date(8, Calendar.AUGUST, 2001))));
		s1.add(new Task("Revised Design Signoff", new SimpleTimePeriod(date(10,
				Calendar.AUGUST, 2001), date(10, Calendar.AUGUST, 2001))));
		s1.add(new Task("Beta Implementation", new SimpleTimePeriod(date(12,
				Calendar.AUGUST, 2001), date(12, Calendar.SEPTEMBER, 2001))));
		s1.add(new Task("Testing", new SimpleTimePeriod(date(13,
				Calendar.SEPTEMBER, 2001), date(31, Calendar.OCTOBER, 2001))));
		s1.add(new Task("Final Implementation", new SimpleTimePeriod(date(1,
				Calendar.NOVEMBER, 2001), date(15, Calendar.NOVEMBER, 2001))));
		s1.add(new Task("Signoff", new SimpleTimePeriod(date(28,
				Calendar.NOVEMBER, 2001), date(30, Calendar.NOVEMBER, 2001))));
		TaskSeries s2 = new TaskSeries("Actual");
		s2.add(new Task("Write Proposal", new SimpleTimePeriod(date(1,
				Calendar.APRIL, 2001), date(5, Calendar.APRIL, 2001))));
		s2.add(new Task("Obtain Approval", new SimpleTimePeriod(date(9,
				Calendar.APRIL, 2001), date(9, Calendar.APRIL, 2001))));
		s2.add(new Task("Requirements Analysis", new SimpleTimePeriod(date(10,
				Calendar.APRIL, 2001), date(15, Calendar.MAY, 2001))));
		s2.add(new Task("Design Phase", new SimpleTimePeriod(date(15,
				Calendar.MAY, 2001), date(17, Calendar.JUNE, 2001))));
		s2.add(new Task("Design Signoff", new SimpleTimePeriod(date(30,
				Calendar.JUNE, 2001), date(30, Calendar.JUNE, 2001))));
		s2.add(new Task("Alpha Implementation", new SimpleTimePeriod(date(1,
				Calendar.JULY, 2001), date(12, Calendar.SEPTEMBER, 2001))));
		s2
				.add(new Task("Design Review", new SimpleTimePeriod(date(12,
						Calendar.SEPTEMBER, 2001), date(22, Calendar.SEPTEMBER,
						2001))));
		s2
				.add(new Task("Revised Design Signoff", new SimpleTimePeriod(
						date(25, Calendar.SEPTEMBER, 2001), date(27,
								Calendar.SEPTEMBER, 2001))));
		s2.add(new Task("Beta Implementation", new SimpleTimePeriod(date(27,
				Calendar.SEPTEMBER, 2001), date(30, Calendar.OCTOBER, 2001))));
		s2.add(new Task("Testing", new SimpleTimePeriod(date(31,
				Calendar.OCTOBER, 2001), date(17, Calendar.NOVEMBER, 2001))));
		s2.add(new Task("Final Implementation", new SimpleTimePeriod(date(18,
				Calendar.NOVEMBER, 2001), date(5, Calendar.DECEMBER, 2001))));
		s2.add(new Task("Signoff", new SimpleTimePeriod(date(10,
				Calendar.DECEMBER, 2001), date(11, Calendar.DECEMBER, 2001))));
		taskSeriesCollection.add(s1);
		taskSeriesCollection.add(s2);

		return taskSeriesCollection;
	}

	private static Date date(int day, int month, int year) {
		Calendar calendar = Calendar.getInstance();
		calendar.set(year, month, day);
		Date result = calendar.getTime();
		return result;
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -