JFreeChart 典型图表

本文介绍了一个用于生成各种类型图表的Java库——JFreeChart的使用方法,包括2D和3D柱状图、条形图、线图、面积图等多种图表类型的创建过程。

import java.awt.Color;
import java.awt.Font;
import java.awt.Rectangle;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.axis.AxisLocation;
import org.jfree.chart.axis.NumberAxis;
import org.jfree.chart.labels.PieToolTipGenerator;
import org.jfree.chart.labels.StandardPieToolTipGenerator;
import org.jfree.chart.plot.CategoryPlot;
import org.jfree.chart.plot.PiePlot;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.chart.plot.RingPlot;
import org.jfree.chart.plot.XYPlot;
import org.jfree.chart.renderer.category.BarRenderer;
import org.jfree.chart.renderer.category.LineAndShapeRenderer;
import org.jfree.chart.renderer.category.StackedBarRenderer;
import org.jfree.chart.renderer.category.StackedBarRenderer3D;
import org.jfree.chart.renderer.xy.DefaultXYItemRenderer;
import org.jfree.chart.renderer.xy.XYItemRenderer;
import org.jfree.util.TableOrder;

/** *//**
* @author xum @ 2006/09/14
* neusoft
* TODO To change the template for this generated type comment go to
* Window - Preferences - Java - Code Style - Code Templates
*/
public class ChartCreater ...{

/** *//**
* 2D柱图
* @return
*/
public static JFreeChart createCategoryChart()...{

JFreeChart chart = ChartFactory.createBarChart(
"Bar2D",     // 图表名称
"Category", // X轴名称
"Value",     // Y轴名称
ChartDataSet.createCategoryDataset(),   // 数据集
PlotOrientation.VERTICAL, // 图表方向
true,   // 图例
true,   // Tooltips
false); //URL

CategoryPlot plot = (CategoryPlot)chart.getPlot();   

setCategoryPlot(plot); 

return chart;
}

/** *//**
* 3D柱图
* @return
*/
public static JFreeChart createCategoryChart3D()...{

JFreeChart chart = ChartFactory.createBarChart3D(
"Bar2D", "Category", "Value",
ChartDataSet.createCategoryDataset(), 
PlotOrientation.VERTICAL,
true, true, false); 

CategoryPlot plot = (CategoryPlot)chart.getPlot();   

setCategoryPlot(plot); 

return chart;
}

/** *//**
* 2D条形图
* @return
*/
public static JFreeChart createBarChart()...{

JFreeChart chart = ChartFactory.createBarChart(
"Bar2D", "Category", "Value",
ChartDataSet.createCategoryDataset(), 
PlotOrientation.HORIZONTAL,
true, true, false); 

CategoryPlot plot = (CategoryPlot)chart.getPlot();   

setCategoryPlot(plot); 

plot.setRangeAxisLocation(AxisLocation.BOTTOM_OR_LEFT);

return chart;
}

/** *//**
* 3D条形图
* @return
*/
public static JFreeChart createBarChart3D()...{

JFreeChart chart = ChartFactory.createBarChart3D(
"Bar2D", "Category", "Value",
ChartDataSet.createCategoryDataset(), 
PlotOrientation.HORIZONTAL,
true, true, false); 

CategoryPlot plot = (CategoryPlot)chart.getPlot();   

setCategoryPlot(plot); 

plot.setRangeAxisLocation(AxisLocation.BOTTOM_OR_LEFT);

return chart;
}

/** *//**
* 2D线图
* @return
*/
public static JFreeChart createLintChart()...{

JFreeChart chart = ChartFactory.createLineChart(
"Bar2D", "Category", "Value",
ChartDataSet.createCategoryDataset(), 
PlotOrientation.VERTICAL,
true, true, false); 

CategoryPlot plot = (CategoryPlot)chart.getPlot();   

setCategoryPlot(plot); 

LineAndShapeRenderer lineAndShapeRenderer = (LineAndShapeRenderer) plot.getRenderer();
lineAndShapeRenderer.setShapesVisible(true);
lineAndShapeRenderer.setShapesFilled(true);

return chart;
}

/** *//**
* 3D线图
* @return
*/
public static JFreeChart createLintChart3D()...{

JFreeChart chart = ChartFactory.createLineChart3D(
"Bar2D", "Category", "Value",
ChartDataSet.createCategoryDataset(), 
PlotOrientation.VERTICAL,
true, true, false); 

CategoryPlot plot = (CategoryPlot)chart.getPlot();   

setCategoryPlot(plot); 

return chart;
}

/** *//**
* 面积图
* @return
*/
public static JFreeChart createAreaChart()...{
JFreeChart chart = ChartFactory.createAreaChart(
"Area", "Category", "Value",
ChartDataSet.createCategoryDataset(), 
PlotOrientation.VERTICAL,
true, true, false); 

CategoryPlot plot = (CategoryPlot)chart.getPlot();   

setCategoryPlot(plot); 

return chart;
}

/** *//**
* 瀑布图
* @return
*/
public static JFreeChart createWaterfallChart()...{
JFreeChart chart = ChartFactory.createWaterfallChart(
"WaterfallChart", "Category", "Value",
ChartDataSet.createCategoryDataset(), 
PlotOrientation.VERTICAL,
true, true, false); 

CategoryPlot plot = (CategoryPlot)chart.getPlot();   

setCategoryPlot(plot); 

return chart;
}

/** *//**
* 2D饼图
* @return
*/
public static JFreeChart createPieChart()...{
JFreeChart chart = ChartFactory.createPieChart(
"PieChart", 
ChartDataSet.createPieDataset(), 
true, true, false);

PiePlot piePlot = (PiePlot) chart.getPlot();

piePlot.setCircular(false);
piePlot.setLabelGap(0.02);   

return chart;
}

/** *//**
* 3D饼图
* @return
*/
public static JFreeChart createPieChart3D()...{
JFreeChart chart = ChartFactory.createPieChart3D(
"PieChart3D", 
ChartDataSet.createPieDataset(), 
true, true, false);

PiePlot piePlot = (PiePlot) chart.getPlot();

piePlot.setCircular(false);
piePlot.setLabelGap(0.02);



return chart;
}

/** *//**
* 复合饼图
* 12
*/
public static JFreeChart createMultiplePieChart()...{
TableOrder order = TableOrder.BY_ROW;     
//     TableOrder order = TableOrder.BY_COLUMN;

JFreeChart chart = ChartFactory.createMultiplePieChart("MultiplePieChart", 
ChartDataSet.createCategoryDataset(),
order, true, true, false);

return chart;
}

/** *//**
* 复合饼图3D
* 12
*/
public static JFreeChart createMultiplePieChart3D()...{
TableOrder order = TableOrder.BY_ROW;     
//     TableOrder order = TableOrder.BY_COLUMN;

JFreeChart chart = ChartFactory.createMultiplePieChart3D("MultiplePieChart3D", 
ChartDataSet.createCategoryDataset(),
order, true, true, false);

return chart;
}

/** *//**
* 环形图
*/
public static JFreeChart createRingChart()...{
JFreeChart chart = ChartFactory.createRingChart(
"RingChart", 
ChartDataSet.createPieDataset(), 
true, true, false);

RingPlot ringPlot = (RingPlot) chart.getPlot();

ringPlot.setBackgroundAlpha(1.0f);
ringPlot.setCircular(false);
ringPlot.setLabelGap(0.02);

return chart;
}

/** *//**
* 散点图
* 40
*/
public static JFreeChart createScatterPlot()...{
JFreeChart chart = ChartFactory.createScatterPlot(
"ScatterPlot", "Categary", "Value",
ChartDataSet.createXYSeriesCollection(), 
PlotOrientation.VERTICAL,
true, true, false);

XYPlot xyPlot = chart.getXYPlot();

setXYSeriesPlot(xyPlot);

return chart;
}

/** *//**
* 组织图
*/
public static JFreeChart createHistogram()...{
JFreeChart chart = ChartFactory.createHistogram(
"Histogram", "Categary", "Value",
ChartDataSet.createXYSeriesCollection(), 
PlotOrientation.VERTICAL,
true, true, false);

XYPlot xyPlot = chart.getXYPlot();

setXYSeriesPlot(xyPlot);

return chart;
}

/** *//**
* 数据点阶梯图
* 33
*/
public static JFreeChart createXYStepChart()...{
JFreeChart chart = ChartFactory.createXYStepChart(
"XYStepChart", "Categary", "Value",
ChartDataSet.createXYSeriesCollection(), 
PlotOrientation.VERTICAL,
true, true, false);

XYPlot xyPlot = chart.getXYPlot();

setXYSeriesPlot(xyPlot);

return chart;
}

/**//*
* 堆积柱状图
* 01
*/
public static JFreeChart createStackedCategoryChart()...{
JFreeChart chart = ChartFactory.createStackedBarChart(
"StackedCategoryChar", "Categary", "Value",
ChartDataSet.createCategoryDataset(), 
PlotOrientation.VERTICAL,
true, true, false);

CategoryPlot plot = (CategoryPlot)chart.getPlot();   

setCategoryPlot(plot);

return chart;
}

/**//*
* 堆积柱状图3D
* 04
*/
public static JFreeChart createStackedCategoryChart3D()...{
JFreeChart chart = ChartFactory.createStackedBarChart3D(
"StackedCategoryChar3D", "Categary", "Value",
ChartDataSet.createCategoryDataset(), 
PlotOrientation.VERTICAL,
true, true, false);

CategoryPlot plot = (CategoryPlot)chart.getPlot();   

setCategoryPlot(plot); 

return chart;
}

/**//*
* 堆积条形图
* 21
*/
public static JFreeChart createStackedBarChart()...{
JFreeChart chart = ChartFactory.createStackedBarChart(
"StackedBarChart", "Categary", "Value",
ChartDataSet.createCategoryDataset(), 
PlotOrientation.HORIZONTAL,
true, true, false);

CategoryPlot plot = (CategoryPlot)chart.getPlot();   

setCategoryPlot(plot); 

plot.setRangeAxisLocation(AxisLocation.BOTTOM_OR_LEFT);    

return chart;
}

/**//*
* 堆积条形图3D
* 23
*/
public static JFreeChart createStackedBarChart3D()...{
JFreeChart chart = ChartFactory.createStackedBarChart3D(
"StackedBarChart3D", "Categary", "Value",
ChartDataSet.createCategoryDataset(), 
PlotOrientation.HORIZONTAL,
true, true, false);

CategoryPlot plot = (CategoryPlot)chart.getPlot();   

setCategoryPlot(plot); 

plot.setRangeAxisLocation(AxisLocation.BOTTOM_OR_LEFT); 

return chart;
}

/**//*
* 堆积面积图
* 53
*/
public static JFreeChart createStackedAreaChart()...{
JFreeChart chart = ChartFactory.createStackedAreaChart(
"StackedAreaChart", "Categary", "Value",
ChartDataSet.createCategoryDataset(), 
PlotOrientation.VERTICAL,
true, true, false);

CategoryPlot plot = (CategoryPlot)chart.getPlot();   

setCategoryPlot(plot); 

return chart;
}

/**//*
* XY数据点面积图
* 52
*/
public static JFreeChart createXYAreaChart()...{
JFreeChart chart = ChartFactory.createXYAreaChart(
"XYAreaChart", "Categary", "Value",
ChartDataSet.createXYSeriesCollection(), 
PlotOrientation.VERTICAL,
true, true, false);

XYPlot xyPlot = chart.getXYPlot();

setXYSeriesPlot(xyPlot);

return chart;
}


/**//*
* XY数据点阶梯面积图
* 51
*/
public static JFreeChart createXYStepAreaChart()...{
JFreeChart chart = ChartFactory.createXYStepAreaChart(
"XYStepAreaChart", "Categary", "Value",
ChartDataSet.createXYSeriesCollection(), 
PlotOrientation.VERTICAL,
true, true, false);

XYPlot xyPlot = chart.getXYPlot();

setXYSeriesPlot(xyPlot);

return chart;
}

/**//*
* XY数据点折线图
* 32
*/
public static JFreeChart createXYLineChart()...{
JFreeChart chart = ChartFactory.createXYLineChart(
"XYLineChart", "Categary", "Value",
ChartDataSet.createXYSeriesCollection(), 
PlotOrientation.VERTICAL,
true, true, false);

XYPlot xyPlot = chart.getXYPlot();

setXYSeriesPlot(xyPlot);

XYItemRenderer lineAndShapeRenderer = (XYItemRenderer) xyPlot.getRenderer();      

return chart;
}

/**//*
* XY数据点柱状图
* 05
*/
public static JFreeChart createXYBarChart()...{
JFreeChart chart = ChartFactory.createXYBarChart(
"XYBarChart", "Categary", true, "Value",
ChartDataSet.createXYSeriesCollection(),
PlotOrientation.VERTICAL,
true, true, false);

XYPlot xyPlot = chart.getXYPlot();

setXYSeriesPlot(xyPlot);

return chart;
}

/**//*
* 气泡图
*/
public static JFreeChart createBubbleChart()...{
JFreeChart chart = ChartFactory.createBubbleChart(
"BubbleChart", "Categary", "Value",
ChartDataSet.createDefaultXYZDataset(),
PlotOrientation.VERTICAL,
true, true, false);

return chart;
}

/**//*
* 数据点堆积面积图
*/
public static JFreeChart createStackedXYAreaChart()...{
JFreeChart chart = ChartFactory.createStackedXYAreaChart(
"StackedXYAreaChart", "Categary", "Value",
ChartDataSet.createDefaultTableXYDataset(), 
PlotOrientation.VERTICAL,
true, true, false);

XYPlot xyPlot = chart.getXYPlot();

setXYSeriesPlot(xyPlot);

return chart;
}

/**//*
* 甘特图
*/
public static JFreeChart createGanttChart()...{
JFreeChart chart = ChartFactory.createGanttChart(
"GanttChart", "Categary", "Value",
ChartDataSet.createGanttDataset(),
true, true, false);

CategoryPlot plot = (CategoryPlot) chart.getPlot();

setCategoryPlot(plot);

return chart;
}

/**//*
* 股价图
*/
public static JFreeChart createHighLowChart()...{
JFreeChart chart = ChartFactory.createHighLowChart(
"HighLowChart", "Categary", "Value",
ChartDataSet.createDefaultOHLCDataset(),
false);

return chart;
}

/**//*
* 烛台图
*/
public static JFreeChart createCandlestickChart()...{
JFreeChart chart = ChartFactory.createCandlestickChart(
"CandlestickChart", "Categary", "Value",
ChartDataSet.createDefaultOHLCDataset(),
false);
return chart;
}
/**//*
* 雷达图
*/
private JFreeChart createPolarChart()...{

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值