📄 chartdata.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 + -