分享

JFreeChart 典型图表

 桑枯海 2013-08-07
JFreeChart 典型图表
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()...{
JFreeChart chart = ChartFactory.createPolarChart(
"PolarChart",
ChartDataSet.createXYSeriesCollection(),
true, true, false);

return chart;
}

/**//*
* 2D柱线图
*/
public static JFreeChart createCombinedChart()...{
JFreeChart chart = ChartFactory.createBarChart(
"CombinedChart", "Categary", "Value",
ChartDataSet.createCategoryDataset(),
PlotOrientation.VERTICAL,
true, true, false);

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

setCategoryPlot(plot);

BarRenderer barRenderer = (BarRenderer) plot.getRenderer();
barRenderer.setMaximumBarWidth(0.10D);
barRenderer.setItemMargin(0.10D);

NumberAxis numberAxis = new NumberAxis("");
plot.setRangeAxis(1, numberAxis);
plot.setRangeAxisLocation(1, AxisLocation.BOTTOM_OR_RIGHT);
plot.setDataset(1, ChartDataSet.createCategoryDataset());
plot.setRenderer(1, new LineAndShapeRenderer());
plot.mapDatasetToDomainAxis(1, 0);
plot.mapDatasetToRangeAxis(1,1);

return chart;
}



/** *//**
* 设置CategoryPlot
* 坐标轴及网格属性设置
* @param plot
*/
private static void setCategoryPlot(CategoryPlot plot)...{
plot.getDomainAxis().setVisible(true);
plot.getDomainAxis().setLabelFont(new Font("宋体", Font.PLAIN, 12));
plot.getDomainAxis().setLabelPaint(Color.BLACK);
plot.getDomainAxis().setTickLabelFont(new Font("宋体", Font.PLAIN, 12));
plot.getDomainAxis().setTickLabelPaint(Color.BLACK);
plot.getDomainAxis().setTickLabelsVisible(true);

plot.getRangeAxis().setVisible(true);
plot.getRangeAxis().setLabelFont(new Font("宋体", Font.PLAIN, 12));
plot.getRangeAxis().setLabelPaint(Color.BLACK);
plot.getRangeAxis().setTickLabelFont(new Font("宋体", Font.PLAIN, 12));
plot.getRangeAxis().setTickLabelPaint(Color.BLACK);
plot.getRangeAxis().setVerticalTickLabels(false);
plot.getRangeAxis().setLabelAngle(0.0D);


plot.setDomainGridlinesVisible(true);
plot.setRangeGridlinesVisible(true);
}

/** *//**
* 设置 XYPlot
* @param plot
*/
private static void setXYSeriesPlot(XYPlot plot)...{
plot.getDomainAxis().setVisible(true);
plot.getDomainAxis().setLabelFont(new Font("宋体", Font.PLAIN, 12));
plot.getDomainAxis().setLabelPaint(Color.BLACK);
plot.getDomainAxis().setTickLabelFont(new Font("宋体", Font.PLAIN, 12));
plot.getDomainAxis().setTickLabelPaint(Color.BLACK);
plot.getDomainAxis().setTickLabelsVisible(true);

plot.getRangeAxis().setVisible(true);
plot.getRangeAxis().setLabelFont(new Font("宋体", Font.PLAIN, 12));
plot.getRangeAxis().setLabelPaint(Color.BLACK);
plot.getRangeAxis().setTickLabelFont(new Font("宋体", Font.PLAIN, 12));
plot.getRangeAxis().setTickLabelPaint(Color.BLACK);
plot.getRangeAxis().setVerticalTickLabels(false);
plot.getRangeAxis().setLabelAngle(0.0D);


plot.setDomainGridlinesVisible(true);
plot.setRangeGridlinesVisible(true);
}

}

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约