目录:

一、图形及代码:

1、饼形图

2.1、普通柱形图

2.2、XYDataset柱形图

3、折线图

4、区域图

5、时序图

6、组合图

二web应用jfreeChar(区域图)

三:DataUtils类代码(所有代码中均应用的类,得到随即数据)

一、图形及代码

1、饼形图

import java.awt.Font;

import java.io.FileOutputStream;

import java.io.IOException;

import java.io.OutputStream;

import org.jfree.chart.ChartFactory;

import org.jfree.chart.ChartUtilities;

import org.jfree.chart.JFreeChart;

import org.jfree.chart.plot.PiePlot;

import org.jfree.data.general.DefaultPieDataset;

import org.jfree.data.general.PieDataset;

public class PieChart {

public static void

main(String[] agrs) throws IOException{

// 打开一个输出流

OutputStream outputStream=new

FileOutputStream("PieChart.png");

// 获取数据集对象

PieDataset dataset = createPieDataset();

// 创建图形对象

JFreeChart jfreechart =

ChartFactory.createPieChart3D("08年图书销量排行榜",

dataset, true, true, false);

// 获得图表区域对象

PiePlot pieplot = (PiePlot) jfreechart.getPlot();

// 设置图表区域的标签字体

pieplot.setLabelFont(new Font("宋体", 0, 12));

//

设置图表区域无数据时的默认显示文字

pieplot.setNoDataMessage("没有销售数据");

//

设置图表区域不是圆形,由于是3D的饼形图,建议设置为false

pieplot.setCircular(false);

//

设置图表区域文字与图表区域的间隔距离,0.02表示2%

pieplot.setLabelGap(0.02D);

//

将图表已数据流的方式返回给客户端

ChartUtilities.writeChartAsPNG(outputStream,

jfreechart,

500, 270);

}

private static PieDataset

createPieDataset() {

// 创建饼形图数据集对象

DefaultPieDataset defaultpiedataset = new

DefaultPieDataset();

// 分别图形区域的说明和数据

defaultpiedataset.setValue("JAVA",

DataUtils.getRandomData());

defaultpiedataset.setValue("C/C++",

DataUtils.getRandomData());

defaultpiedataset.setValue("PHP",

DataUtils.getRandomData());

defaultpiedataset.setValue("JavaScript",

DataUtils.getRandomData());

defaultpiedataset.setValue("Ajax",

DataUtils.getRandomData());

return defaultpiedataset;

}

}

package com.helloweenvsfei.jfreechart;

import java.awt.Font;

import java.io.FileOutputStream;

import java.io.IOException;

import java.io.OutputStream;

import org.jfree.chart.ChartFactory;

import org.jfree.chart.ChartUtilities;

import org.jfree.chart.JFreeChart;

import org.jfree.chart.plot.PiePlot;

import org.jfree.data.general.DefaultPieDataset;

import org.jfree.data.general.PieDataset;

public class PieChart {

public static void main(String[] agrs) throws IOException{

// 打开一个输出流

OutputStream outputStream=new FileOutputStream("PieChart.png");

// 获取数据集对象

PieDataset dataset = createPieDataset();

// 创建图形对象

JFreeChart jfreechart = ChartFactory.createPieChart3D("08年图书销量排行榜",

dataset, true, true, false);

// 获得图表区域对象

PiePlot pieplot = (PiePlot) jfreechart.getPlot();

// 设置图表区域的 签字体

pieplot.setLabelFont(new Font("宋体", 0, 12));

// 设置图表区域 数据时的默认显示文字

pieplot.setNoDataMessage("没有销售数据");

// 设置图表区域不是圆形,由于是3D的饼形图,建议设置为false

pieplot.setCircular(false);

// 设置图表区域文字与图表区域的间隔距离,0.02表示2%

pieplot.setLabelGap(0.02D);

// 将图表已数据流的方式返回给客户端

ChartUtilities.writeChartAsPNG(outputStream, jfreechart,

500, 270);

}

private static PieDataset createPieDataset() {

// 创建饼形图数据集对象

DefaultPieDataset defaultpiedataset = new DefaultPieDataset();

// 分别图形区域的说明和数据

defaultpiedataset.setValue("JAVA", DataUtils.getRandomData());

defaultpiedataset.setValue("C/C++", DataUtils.getRandomData());

defaultpiedataset.setValue("PHP", DataUtils.getRandomData());

defaultpiedataset.setValue("JavaScript", DataUtils.getRandomData());

defaultpiedataset.setValue("Ajax", DataUtils.getRandomData());

return defaultpiedataset;

}

}

效果:

2.1、普通柱形图

import java.io.FileOutputStream;

import java.io.IOException;

import java.io.OutputStream;

import org.jfree.chart.ChartFactory;

import org.jfree.chart.ChartUtilities;

import org.jfree.chart.JFreeChart;

import org.jfree.chart.axis.CategoryAxis;

import org.jfree.chart.axis.CategoryLabelPositions;

import org.jfree.chart.plot.CategoryPlot;

import org.jfree.chart.plot.PlotOrientation;

import org.jfree.chart.renderer.category.BarRenderer3D;

import org.jfree.data.category.CategoryDataset;

import org.jfree.data.category.DefaultCategoryDataset;

public class BarChart {

public static void

main(String[] agrs) throws IOException{

// 打开一个输出流

OutputStream outputStream=new

FileOutputStream("BarChart.png");

// 获取数据集对象

CategoryDataset dataset = createDataset();

// 创建图形对象

JFreeChart jfreechart =

ChartFactory.createBarChart3D("08年图书销售量排名",

"按季度", "销量",

dataset, PlotOrientation.VERTICAL, true, true,

false);

// 获得图表区域对象

CategoryPlot categoryPlot = (CategoryPlot)

jfreechart.getPlot();

// 设置网格线可见

categoryPlot.setDomainGridlinesVisible(true);

// 获得x轴对象

CategoryAxis categoryAxis =

categoryPlot.getDomainAxis();

//

设置x轴显示的分类名称的显示位置,如果不设置则水平显示

//

设置后,可以斜像显示,但分类角度,图表空间有限时,建议采用

categoryAxis.setCategoryLabelPositions(CategoryLabelPositions

.createUpRotationLabelPositions(0.39269908169872414D));

categoryAxis.setCategoryMargin(0.0D);

// 获显示图形对象

BarRenderer3D barRenderer3d = (BarRenderer3D)

categoryPlot

.getRenderer();

// 设置不显示边框线

barRenderer3d.setDrawBarOutline(false);

//

将图表已数据流的方式返回给客户端

ChartUtilities.writeChartAsPNG(outputStream,

jfreechart,

500, 270);

}

private static

CategoryDataset createDataset() {

// 时间维度

String[] category1 = { "第一季度",

"第二季度", "第三季度", "第四季度" };

// 分类维度

String[] category2 = { "JAVA", "C/C++", "PHP" };

DefaultCategoryDataset defaultdataset = new

DefaultCategoryDataset();

for (int i = 0; i <

category1.length; i++) {

String

category = category1[i];

for (int j

= 0; j < category2.length; j++) {

String cat = category2[j];

// 模拟添加数据

defaultdataset.addValue(DataUtils.getRandomData(),

cat, category);

}

}

return defaultdataset;

}

}

package com.helloweenvsfei.jfreechart;

import java.io.FileOutputStream;

import java.io.IOException;

import java.io.OutputStream;

import org.jfree.chart.ChartFactory;

import org.jfree.chart.ChartUtilities;

import org.jfree.chart.JFreeChart;

import org.jfree.chart.axis.CategoryAxis;

import org.jfree.chart.axis.CategoryLabelPositions;

import org.jfree.chart.plot.CategoryPlot;

import org.jfree.chart.plot.PlotOrientation;

import org.jfree.chart.renderer.category.BarRenderer3D;

import org.jfree.data.category.CategoryDataset;

import org.jfree.data.category.DefaultCategoryDataset;

public class BarChart {

public static void main(String[] agrs) throws IOException{

// 打开一个输出流

OutputStream outputStream=new FileOutputStream("BarChart.png");

// 获取数据集对象

CategoryDataset dataset = createDataset();

// 创建图形对象

JFreeChart jfreechart = ChartFactory.createBarChart3D("08年图书销售量排名",

"按季度", "销量", dataset, PlotOrientation.VERTICAL, true, true,

false);

// 获得图表区域对象

CategoryPlot categoryPlot = (CategoryPlot) jfreechart.getPlot();

// 设置网 线可见

categoryPlot.setDomainGridlinesVisible(true);

// 获得x轴对象

CategoryAxis categoryAxis = categoryPlot.getDomainAxis();

// 设置x轴显示的分类名称的显示位置,如果不设置则水平显示

// 设置后,可以斜像显示,但分类角度,图表空间有限时,建议采用

categoryAxis.setCategoryLabelPositions(CategoryLabelPositions

.createUpRotationLabelPositions(0.39269908169872414D));

categoryAxis.setCategoryMargin(0.0D);

// 获显示图形对象

BarRenderer3D barRenderer3d = (BarRenderer3D) categoryPlot

.getRenderer();

// 设置不显示边框线

barRenderer3d.setDrawBarOutline(false);

// 将图表已数据流的方式返回给客户端

ChartUtilities.writeChartAsPNG(outputStream, jfreechart,

500, 270);

}

private static CategoryDataset createDataset() {

// 时间维度

String[] category1 = { "第一季度", "第二季度", "第三季度", "第四季度" };

// 分类维度

String[] category2 = { "JAVA", "C/C++", "PHP" };

DefaultCategoryDataset defaultdataset = new DefaultCategoryDataset();

for (int i = 0; i < category1.length; i++) {

String category = category1[i];

for (int j = 0; j < category2.length; j++) {

String cat = category2[j];

// 模拟添 数据

defaultdataset.addValue(DataUtils.getRandomData(), cat, category);

}

}

return defaultdataset;

}

}

效果:

2.2、XYDataset柱形图

import java.awt.Color;

import java.io.FileOutputStream;

import java.io.IOException;

import java.io.OutputStream;

import org.jfree.chart.ChartFactory;

import org.jfree.chart.ChartUtilities;

import org.jfree.chart.JFreeChart;

import org.jfree.chart.plot.PlotOrientation;

import org.jfree.chart.plot.XYPlot;

import org.jfree.chart.renderer.xy.XYBarRenderer;

import org.jfree.data.xy.IntervalXYDataset;

import org.jfree.data.xy.XYBarDataset;

import org.jfree.data.xy.XYSeries;

import org.jfree.data.xy.XYSeriesCollection;

public class BarChart2 {

public static void

main(String[] agrs) throws IOException{

// 打开一个输出流

OutputStream outputStream=new

FileOutputStream("BarChart2.png");

// 获取数据集对象

IntervalXYDataset dataset = createDataset();

// 创建图形对象

JFreeChart jfreechart =

ChartFactory.createXYBarChart("08年图书销售量", null,

false, "销量", dataset,

PlotOrientation.VERTICAL, true, false,

false);

// 设置背景为白色

jfreechart.setBackgroundPaint(Color.white);

// 获得图表区域对象

XYPlot xyplot = (XYPlot) jfreechart.getPlot();

// 设置区域对象背景为灰色

xyplot.setBackgroundPaint(Color.lightGray);

// 设置区域对象网格线调为白色

xyplot.setDomainGridlinePaint(Color.white);

xyplot.setRangeGridlinePaint(Color.white);

// 获显示图形对象

XYBarRenderer xybarrenderer = (XYBarRenderer)

xyplot.getRenderer();

// 设置不显示边框线

xybarrenderer.setDrawBarOutline(false);

//

将图表已数据流的方式返回给客户端

ChartUtilities.writeChartAsPNG(outputStream,

jfreechart,

500, 270);

}

private static

IntervalXYDataset createDataset() {

// 创建基本数据

XYSeries xyseries = new XYSeries("JAVA");

XYSeries xyseries1 = new XYSeries("PHP");

for (int i = 1; i <= 12; i++) {

//

添加数据

xyseries.add(i,DataUtils.getRandomData());

xyseries1.add(i,DataUtils.getRandomData());

}

XYSeriesCollection xyseriescollection = new

XYSeriesCollection();

xyseriescollection.addSeries(xyseries);

xyseriescollection.addSeries(xyseries1);

return new XYBarDataset(xyseriescollection,

0.90000000000000002D);

}

}

package com.helloweenvsfei.jfreechart;

import java.awt.Color;

import java.io.FileOutputStream;

import java.io.IOException;

import java.io.OutputStream;

import org.jfree.chart.ChartFactory;

import org.jfree.chart.ChartUtilities;

import org.jfree.chart.JFreeChart;

import org.jfree.chart.plot.PlotOrientation;

import org.jfree.chart.plot.XYPlot;

import org.jfree.chart.renderer.xy.XYBarRenderer;

import org.jfree.data.xy.IntervalXYDataset;

import org.jfree.data.xy.XYBarDataset;

import org.jfree.data.xy.XYSeries;

import org.jfree.data.xy.XYSeriesCollection;

public class BarChart2 {

public static void main(String[] agrs) throws IOException{

// 打开一个输出流

OutputStream outputStream=new FileOutputStream("BarChart2.png");

// 获取数据集对象

IntervalXYDataset dataset = createDataset();

// 创建图形对象

JFreeChart jfreechart = ChartFactory.createXYBarChart("08年图书销售量", null,

false, "销量", dataset, PlotOrientation.VERTICAL, true, false,

false);

// 设置背景为白色

jfreechart.setBackgroundPaint(Color.white);

// 获得图表区域对象

XYPlot xyplot = (XYPlot) jfreechart.getPlot();

// 设置区域对象背景为灰色

xyplot.setBackgroundPaint(Color.lightGray);

// 设置区域对象网 线调为白色

xyplot.setDomainGridlinePaint(Color.white);

xyplot.setRangeGridlinePaint(Color.white);

// 获显示图形对象

XYBarRenderer xybarrenderer = (XYBarRenderer) xyplot.getRenderer();

// 设置不显示边框线

xybarrenderer.setDrawBarOutline(false);

// 将图表已数据流的方式返回给客户端

ChartUtilities.writeChartAsPNG(outputStream, jfreechart,

500, 270);

}

private static IntervalXYDataset createDataset() {

// 创建基本数据

XYSeries xyseries = new XYSeries("JAVA");

XYSeries xyseries1 = new XYSeries("PHP");

for (int i = 1; i <= 12; i++) {

// 添 数据

xyseries.add(i,DataUtils.getRandomData());

xyseries1.add(i,DataUtils.getRandomData());

}

XYSeriesCollection xyseriescollection = new XYSeriesCollection();

xyseriescollection.addSeries(xyseries);

xyseriescollection.addSeries(xyseries1);

return new XYBarDataset(xyseriescollection, 0.90000000000000002D);

}

}

效果:

3、折线图

import java.awt.BasicStroke;

import java.awt.Color;

import java.awt.Font;

import java.io.FileOutputStream;

import java.io.IOException;

import java.io.OutputStream;

import java.util.Date;

import org.jfree.chart.ChartFactory;

import org.jfree.chart.ChartUtilities;

import org.jfree.chart.JFreeChart;

import org.jfree.chart.plot.CategoryPlot;

import org.jfree.chart.plot.PlotOrientation;

import org.jfree.chart.renderer.category.LineAndShapeRenderer;

import org.jfree.chart.title.TextTitle;

import org.jfree.data.category.CategoryDataset;

import org.jfree.data.category.DefaultCategoryDataset;

import org.jfree.ui.HorizontalAlignment;

import org.jfree.ui.RectangleEdge;

public class LineChart {

public static void

main(String[] agrs) throws IOException{

// 打开一个输出流

OutputStream outputStream=new

FileOutputStream("LineChart.png");

// 获取数据集对象

CategoryDataset dataset = createDataset();

// 创建图形对象

JFreeChart jfreechart =

ChartFactory.createLineChart("08年图书销售量",

null, "销售量", dataset,

PlotOrientation.VERTICAL, false, true,

false);

// 设置图表的子标题

jfreechart.addSubtitle(new

TextTitle("按月份"));

// 创建一个标题

TextTitle texttitle = new TextTitle("日期: " +

new Date());

// 设置标题字体

texttitle.setFont(new Font("黑体", 0, 10));

// 设置标题向下对齐

texttitle.setPosition(RectangleEdge.BOTTOM);

// 设置标题向右对齐

texttitle.setHorizontalAlignment(HorizontalAlignment.RIGHT);

// 添加图表的子标题

jfreechart.addSubtitle(texttitle);

// 设置图表的背景色为白色

jfreechart.setBackgroundPaint(Color.white);

// 获得图表区域对象

CategoryPlot categoryplot = (CategoryPlot)

jfreechart.getPlot();

categoryplot.setBackgroundPaint(Color.lightGray);

categoryplot.setRangeGridlinesVisible(false);

// 获显示线条对象

LineAndShapeRenderer lineandshaperenderer =

(LineAndShapeRenderer) categoryplot

.getRenderer();

lineandshaperenderer.setBaseShapesVisible(true);

lineandshaperenderer.setDrawOutlines(true);

lineandshaperenderer.setUseFillPaint(true);

lineandshaperenderer.setBaseFillPaint(Color.white);

// 设置折线加粗

lineandshaperenderer.setSeriesStroke(0, new

BasicStroke(3F));

lineandshaperenderer.setSeriesOutlineStroke(0,

new BasicStroke(2.0F));

// 设置折线拐点

lineandshaperenderer.setSeriesShape(0,

new

java.awt.geom.Ellipse2D.Double(-5D, -5D, 10D, 10D));

//

将图表已数据流的方式返回给客户端

ChartUtilities.writeChartAsPNG(outputStream,

jfreechart,

500, 270);

}

private static

CategoryDataset createDataset() {

DefaultCategoryDataset defaultdataset = new

DefaultCategoryDataset();

for (int i = 1; i <= 12; i++) {

defaultdataset.addValue(DataUtils.getRandomData(),

"JAVA", i + "月");

defaultdataset.addValue(DataUtils.getRandomData(),

"PHP", i + "月");

}

return defaultdataset;

}

}

package com.helloweenvsfei.jfreechart;

import java.awt.BasicStroke;

import java.awt.Color;

import java.awt.Font;

import java.io.FileOutputStream;

import java.io.IOException;

import java.io.OutputStream;

import java.util.Date;

import org.jfree.chart.ChartFactory;

import org.jfree.chart.ChartUtilities;

import org.jfree.chart.JFreeChart;

import org.jfree.chart.plot.CategoryPlot;

import org.jfree.chart.plot.PlotOrientation;

import org.jfree.chart.renderer.category.LineAndShapeRenderer;

import org.jfree.chart.title.TextTitle;

import org.jfree.data.category.CategoryDataset;

import org.jfree.data.category.DefaultCategoryDataset;

import org.jfree.ui.HorizontalAlignment;

import org.jfree.ui.RectangleEdge;

public class LineChart {

public static void main(String[] agrs) throws IOException{

// 打开一个输出流

OutputStream outputStream=new FileOutputStream("LineChart.png");

// 获取数据集对象

CategoryDataset dataset = createDataset();

// 创建图形对象

JFreeChart jfreechart = ChartFactory.createLineChart("08年图书销售量",

null, "销售量", dataset, PlotOrientation.VERTICAL, false, true,

false);

// 设置图表的子 题

jfreechart.addSubtitle(new TextTitle("按月份"));

// 创建一个 题

TextTitle texttitle = new TextTitle("日期: " + new Date());

// 设置 题字体

texttitle.setFont(new Font("黑体", 0, 10));

// 设置 题向下对齐

texttitle.setPosition(RectangleEdge.BOTTOM);

// 设置 题向右对齐

texttitle.setHorizontalAlignment(HorizontalAlignment.RIGHT);

// 添 图表的子 题

jfreechart.addSubtitle(texttitle);

// 设置图表的背景色为白色

jfreechart.setBackgroundPaint(Color.white);

// 获得图表区域对象

CategoryPlot categoryplot = (CategoryPlot) jfreechart.getPlot();

categoryplot.setBackgroundPaint(Color.lightGray);

categoryplot.setRangeGridlinesVisible(false);

// 获显示线条对象

LineAndShapeRenderer lineandshaperenderer = (LineAndShapeRenderer) categoryplot

.getRenderer();

lineandshaperenderer.setBaseShapesVisible(true);

lineandshaperenderer.setDrawOutlines(true);

lineandshaperenderer.setUseFillPaint(true);

lineandshaperenderer.setBaseFillPaint(Color.white);

// 设置折线 粗

lineandshaperenderer.setSeriesStroke(0, new BasicStroke(3F));

lineandshaperenderer.setSeriesOutlineStroke(0, new BasicStroke(2.0F));

// 设置折线拐点

lineandshaperenderer.setSeriesShape(0,

new java.awt.geom.Ellipse2D.Double(-5D, -5D, 10D, 10D));

// 将图表已数据流的方式返回给客户端

ChartUtilities.writeChartAsPNG(outputStream, jfreechart,

500, 270);

}

private static CategoryDataset createDataset() {

DefaultCategoryDataset defaultdataset = new DefaultCategoryDataset();

for (int i = 1; i <= 12; i++) {

defaultdataset.addValue(DataUtils.getRandomData(), "JAVA", i + "月");

defaultdataset.addValue(DataUtils.getRandomData(), "PHP", i + "月");

}

return defaultdataset;

}

}

效果 :

4、区域图

import

java.awt.Color;

import java.io.FileOutputStream;

import java.io.IOException;

import java.io.OutputStream;

import org.jfree.chart.ChartFactory;

import org.jfree.chart.ChartUtilities;

import org.jfree.chart.JFreeChart;

import org.jfree.chart.axis.CategoryAxis;

import org.jfree.chart.axis.CategoryLabelPositions;

import org.jfree.chart.plot.CategoryPlot;

import org.jfree.chart.plot.PlotOrientation;

import org.jfree.data.category.CategoryDataset;

import org.jfree.data.category.DefaultCategoryDataset;

import org.jfree.ui.RectangleInsets;

public class AreaChart {

public static void

main(String[] agrs) throws IOException{

// 打开一个输出流

OutputStream outputStream=new

FileOutputStream("AreaChart.png");

// 获取数据集对象

CategoryDataset dataset = createDataset();

// 创建图形对象

JFreeChart jfreechart =

ChartFactory.createAreaChart("08年图书销售量排名",

"按季度", "销量",

dataset, PlotOrientation.VERTICAL, true, true,

false);

// 获得图表区域对象

CategoryPlot categoryplot = (CategoryPlot)

jfreechart.getPlot();

//设置前景色为50%透明

categoryplot.setForegroundAlpha(0.5F);

//设置X轴偏移量

categoryplot.setAxisOffset(new

RectangleInsets(5D, 5D, 5D, 5D));

//设置北景色为浅灰色

categoryplot.setBackgroundPaint(Color.lightGray);

//设置显示网格线

categoryplot.setDomainGridlinesVisible(true);

//设置网格线为白色

categoryplot.setDomainGridlinePaint(Color.white);

//设置显示边界线

categoryplot.setRangeGridlinesVisible(true);

//设置显示边界线为白色

categoryplot.setRangeGridlinePaint(Color.white);

//获得X轴对象

CategoryAxis categoryaxis =

categoryplot.getDomainAxis();

//设置X轴标签位置为45度角

categoryaxis.setCategoryLabelPositions(CategoryLabelPositions.UP_45);

//设置与X轴的补白为0

categoryaxis.setLowerMargin(0.0D);

categoryaxis.setUpperMargin(0.0D);

//

将图表已数据流的方式返回给客户端

ChartUtilities.writeChartAsPNG(outputStream,

jfreechart,

500, 270);

}

private static

CategoryDataset createDataset() {

// 时间维度

String[] category1 = { "第一季度",

"第二季度", "第三季度", "第四季度" };

// 分类维度

String[] category2 = { "JAVA", "C/C++", "PHP" };

DefaultCategoryDataset defaultdataset = new

DefaultCategoryDataset();

for (int i = 0; i <

category1.length; i++) {

String

category = category1[i];

for (int j

= 0; j < category2.length; j++) {

String cat = category2[j];

// 模拟添加数据

defaultdataset.addValue(DataUtils.getRandomData(),

cat, category);

}

}

return defaultdataset;

}

}

package com.helloweenvsfei.jfreechart;

import java.awt.Color;

import java.io.FileOutputStream;

import java.io.IOException;

import java.io.OutputStream;

import org.jfree.chart.ChartFactory;

import org.jfree.chart.ChartUtilities;

import org.jfree.chart.JFreeChart;

import org.jfree.chart.axis.CategoryAxis;

import org.jfree.chart.axis.CategoryLabelPositions;

import org.jfree.chart.plot.CategoryPlot;

import org.jfree.chart.plot.PlotOrientation;

import org.jfree.data.category.CategoryDataset;

import org.jfree.data.category.DefaultCategoryDataset;

import org.jfree.ui.RectangleInsets;

public class AreaChart {

public static void main(String[] agrs) throws IOException{

// 打开一个输出流

OutputStream outputStream=new FileOutputStream("AreaChart.png");

// 获取数据集对象

CategoryDataset dataset = createDataset();

// 创建图形对象

JFreeChart jfreechart = ChartFactory.createAreaChart("08年图书销售量排名",

"按季度", "销量", dataset, PlotOrientation.VERTICAL, true, true,

false);

// 获得图表区域对象

CategoryPlot categoryplot = (CategoryPlot) jfreechart.getPlot();

//设置前景色为50%透明

categoryplot.setForegroundAlpha(0.5F);

//设置X轴偏移量

categoryplot.setAxisOffset(new RectangleInsets(5D, 5D, 5D, 5D));

//设置北景色为浅灰色

categoryplot.setBackgroundPaint(Color.lightGray);

//设置显示网 线

categoryplot.setDomainGridlinesVisible(true);

//设置网 线为白色

categoryplot.setDomainGridlinePaint(Color.white);

//设置显示边界线

categoryplot.setRangeGridlinesVisible(true);

//设置显示边界线为白色

categoryplot.setRangeGridlinePaint(Color.white);

//获得X轴对象

CategoryAxis categoryaxis = categoryplot.getDomainAxis();

//设置X轴 签位置为45度角

categoryaxis.setCategoryLabelPositions(CategoryLabelPositions.UP_45);

//设置与X轴的补白为0

categoryaxis.setLowerMargin(0.0D);

categoryaxis.setUpperMargin(0.0D);

// 将图表已数据流的方式返回给客户端

ChartUtilities.writeChartAsPNG(outputStream, jfreechart,

500, 270);

}

private static CategoryDataset createDataset() {

// 时间维度

String[] category1 = { "第一季度", "第二季度", "第三季度", "第四季度" };

// 分类维度

String[] category2 = { "JAVA", "C/C++", "PHP" };

DefaultCategoryDataset defaultdataset = new DefaultCategoryDataset();

for (int i = 0; i < category1.length; i++) {

String category = category1[i];

for (int j = 0; j < category2.length; j++) {

String cat = category2[j];

// 模拟添 数据

defaultdataset.addValue(DataUtils.getRandomData(), cat, category);

}

}

return defaultdataset;

}

}

效果:

5、时序图

import java.awt.BasicStroke;

import java.io.FileOutputStream;

import java.io.IOException;

import java.io.OutputStream;

import org.jfree.chart.ChartFactory;

import org.jfree.chart.ChartUtilities;

import org.jfree.chart.JFreeChart;

import org.jfree.chart.plot.XYPlot;

import org.jfree.chart.renderer.xy.XYLineAndShapeRenderer;

java生成统计图_java生成各种统计图相关推荐

  1. java给定任意_java生成任意整数随机数(任意指定范围)

    Math.random() jdk1.8文档描述: 1.求:范围为 [ 0 ,352324 ] 之间的随机数.(包括临界值) (int)( Math.random () * ( 352324 +1) ...

  2. java 单开程序_java生成jar包并且单进程运行的实例

    java文件打包jar运行 有效步骤: 1.cmd 到当前目录(默认包主类所在目录为例) set classpath = 默认包主类所在目录 2.javac 主类名.java 3.java 主类名 4 ...

  3. java生成密码_java生成密码生成 | 学步园

    一.根据当前日期生成MD5加密密码 package com.test; import java.security.MessageDigest; import java.text.SimpleDateF ...

  4. java随机姓名_Java生成随机姓名、性别和年龄的实现示例

    一.定义实体类Person,封装生成的数据 package net.dc.test; public class Person { private String name; private String ...

  5. java 日期随机数_Java 生成指定时间范围的随机时间、随机中文姓名、随机字符姓名、随机数...

    解决问题: Java生成指定时间范围的随机时间? Java生成随机中文姓名? Java生成随机字符姓名? Java生成随机数? 代码: import java.io.UnsupportedEncodi ...

  6. java 生成随机数_Java 生成随机数的 N 种方法

    原标题:Java 生成随机数的 N 种方法 www.baeldung.com/java-generating-random-numbers 1.引言 本文将探讨用 Java 生成随机数的不同方法. 2 ...

  7. java uuid 第三方_JAVA生成短8位UUID

    java 原创,转载需注明. 短8位UUID思想其实借鉴微博短域名的生成方式,但是其重复概率过高,而且每次生成4个,需要随即选取一个. 本算法利用62个可打印字符,通过随机生成32位UUID,由于UU ...

  8. java生成条码_Java生成商品条形码

    之前没有使用过这个,现在使用JBarcode生成商品条形码,工作之前的准备工作: Eclipse: Eclipse Java EE IDE for Web Developers. Version: H ...

  9. java word插件开发_java生成word的几种方案

    1. Jacob是Java-COM Bridge的缩写,它在Java与微软的COM组件之间构建一座桥梁.使用Jacob自带的DLL动态链接库,并通过JNI的方式实现了在Java平台上对COM程序的调用 ...

  10. java的可执行文件_java生成可执行文件的方法总结

    第一种:在jbuilder中: 首先你要保证Run菜单-->Run     Project能顺利运行 然后Wizards菜单-->Native     Executable     Bui ...

最新文章

  1. 25个增强iOS应用程序性能的提示和技巧 — 中级篇
  2. 【算法导论】冒泡排序 选择排序
  3. 在浏览器控制台执行以下代码,输入的结果是()
  4. jQuery源码分析 整体框架部分及部分常用方法
  5. 库克看下!罗永浩深夜再谈收购苹果:还需要点时间
  6. Kubernetes Dashboard on Ubuntu 16.04安装记录
  7. 在odoo服务器文件夹,在windows10上安装odoo12开发环境的方法
  8. Vue项目用webpack打包后,预览时资源路径出错(文末有vue项目链接分享)
  9. 服装行业SCM供应链管理平台优化资源配置效率,促进企业提质增效
  10. 拼多多总显示服务器冻僵,为什么拼多多商家后台会打不开?什么原因导致的?
  11. 计算机rank函数排名怎么用,用好RANK函数 跨表排名不用愁
  12. 计算机领域获奖感言,期中考试获奖感言
  13. 新手如何配置WordPress站点
  14. 任何情况下请通过正规渠道变更信用卡额度
  15. linux 释放内存
  16. Mac清倒废纸篓提示“voicetrigger“在使用中
  17. 关于8583报文详解
  18. cf网络不稳定或服务器异常,电脑玩穿越火线为什么提示网络环境异常 - 卡饭网...
  19. [ISCC 2021]部分wp
  20. [c++]setw()用法总结

热门文章

  1. Postman的tests断言
  2. 10015---Nginx 常用命令
  3. 【Word】如何生成左侧的索引目录
  4. csu1337 搞笑版费马大定理
  5. 在Octane中提升渲染速度的技巧(第2部分)
  6. phpExcel中文帮助手册
  7. 图片转为PDF怎么弄
  8. sqlrelay mysql_sql relay 使用
  9. python学习(判断某年某月某日)
  10. 设置8211网口方法并关闭EEE模式