日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

java生成统计图_java生成各种统计图

發(fā)布時(shí)間:2023/12/16 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java生成统计图_java生成各种统计图 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

目錄:

一、圖形及代碼:

1、餅形圖

2.1、普通柱形圖

2.2、XYDataset柱形圖

3、折線圖

4、區(qū)域圖

5、時(shí)序圖

6、組合圖

二web應(yīng)用jfreeChar(區(qū)域圖)

三:DataUtils類代碼(所有代碼中均應(yīng)用的類,得到隨即數(shù)據(jù))

一、圖形及代碼

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{

// 打開(kāi)一個(gè)輸出流

OutputStream outputStream=new

FileOutputStream("PieChart.png");

// 獲取數(shù)據(jù)集對(duì)象

PieDataset dataset = createPieDataset();

// 創(chuàng)建圖形對(duì)象

JFreeChart jfreechart =

ChartFactory.createPieChart3D("08年圖書銷量排行榜",

dataset, true, true, false);

// 獲得圖表區(qū)域?qū)ο?/p>

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

// 設(shè)置圖表區(qū)域的標(biāo)簽字體

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

//

設(shè)置圖表區(qū)域無(wú)數(shù)據(jù)時(shí)的默認(rèn)顯示文字

pieplot.setNoDataMessage("沒(méi)有銷售數(shù)據(jù)");

//

設(shè)置圖表區(qū)域不是圓形,由于是3D的餅形圖,建議設(shè)置為false

pieplot.setCircular(false);

//

設(shè)置圖表區(qū)域文字與圖表區(qū)域的間隔距離,0.02表示2%

pieplot.setLabelGap(0.02D);

//

將圖表已數(shù)據(jù)流的方式返回給客戶端

ChartUtilities.writeChartAsPNG(outputStream,

jfreechart,

500, 270);

}

private static PieDataset

createPieDataset() {

// 創(chuàng)建餅形圖數(shù)據(jù)集對(duì)象

DefaultPieDataset defaultpiedataset = new

DefaultPieDataset();

// 分別圖形區(qū)域的說(shuō)明和數(shù)據(jù)

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{

// 打開(kāi)一個(gè)輸出流

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

// 獲取數(shù)據(jù)集對(duì)象

PieDataset dataset = createPieDataset();

// 創(chuàng)建圖形對(duì)象

JFreeChart jfreechart = ChartFactory.createPieChart3D("08年圖書銷量排行榜",

dataset, true, true, false);

// 獲得圖表區(qū)域?qū)ο?/p>

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

// 設(shè)置圖表區(qū)域的 簽字體

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

// 設(shè)置圖表區(qū)域 數(shù)據(jù)時(shí)的默認(rèn)顯示文字

pieplot.setNoDataMessage("沒(méi)有銷售數(shù)據(jù)");

// 設(shè)置圖表區(qū)域不是圓形,由于是3D的餅形圖,建議設(shè)置為false

pieplot.setCircular(false);

// 設(shè)置圖表區(qū)域文字與圖表區(qū)域的間隔距離,0.02表示2%

pieplot.setLabelGap(0.02D);

// 將圖表已數(shù)據(jù)流的方式返回給客戶端

ChartUtilities.writeChartAsPNG(outputStream, jfreechart,

500, 270);

}

private static PieDataset createPieDataset() {

// 創(chuàng)建餅形圖數(shù)據(jù)集對(duì)象

DefaultPieDataset defaultpiedataset = new DefaultPieDataset();

// 分別圖形區(qū)域的說(shuō)明和數(shù)據(jù)

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{

// 打開(kāi)一個(gè)輸出流

OutputStream outputStream=new

FileOutputStream("BarChart.png");

// 獲取數(shù)據(jù)集對(duì)象

CategoryDataset dataset = createDataset();

// 創(chuàng)建圖形對(duì)象

JFreeChart jfreechart =

ChartFactory.createBarChart3D("08年圖書銷售量排名",

"按季度", "銷量",

dataset, PlotOrientation.VERTICAL, true, true,

false);

// 獲得圖表區(qū)域?qū)ο?/p>

CategoryPlot categoryPlot = (CategoryPlot)

jfreechart.getPlot();

// 設(shè)置網(wǎng)格線可見(jiàn)

categoryPlot.setDomainGridlinesVisible(true);

// 獲得x軸對(duì)象

CategoryAxis categoryAxis =

categoryPlot.getDomainAxis();

//

設(shè)置x軸顯示的分類名稱的顯示位置,如果不設(shè)置則水平顯示

//

設(shè)置后,可以斜像顯示,但分類角度,圖表空間有限時(shí),建議采用

categoryAxis.setCategoryLabelPositions(CategoryLabelPositions

.createUpRotationLabelPositions(0.39269908169872414D));

categoryAxis.setCategoryMargin(0.0D);

// 獲顯示圖形對(duì)象

BarRenderer3D barRenderer3d = (BarRenderer3D)

categoryPlot

.getRenderer();

// 設(shè)置不顯示邊框線

barRenderer3d.setDrawBarOutline(false);

//

將圖表已數(shù)據(jù)流的方式返回給客戶端

ChartUtilities.writeChartAsPNG(outputStream,

jfreechart,

500, 270);

}

private static

CategoryDataset createDataset() {

// 時(shí)間維度

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];

// 模擬添加數(shù)據(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{

// 打開(kāi)一個(gè)輸出流

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

// 獲取數(shù)據(jù)集對(duì)象

CategoryDataset dataset = createDataset();

// 創(chuàng)建圖形對(duì)象

JFreeChart jfreechart = ChartFactory.createBarChart3D("08年圖書銷售量排名",

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

false);

// 獲得圖表區(qū)域?qū)ο?/p>

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

// 設(shè)置網(wǎng) 線可見(jiàn)

categoryPlot.setDomainGridlinesVisible(true);

// 獲得x軸對(duì)象

CategoryAxis categoryAxis = categoryPlot.getDomainAxis();

// 設(shè)置x軸顯示的分類名稱的顯示位置,如果不設(shè)置則水平顯示

// 設(shè)置后,可以斜像顯示,但分類角度,圖表空間有限時(shí),建議采用

categoryAxis.setCategoryLabelPositions(CategoryLabelPositions

.createUpRotationLabelPositions(0.39269908169872414D));

categoryAxis.setCategoryMargin(0.0D);

// 獲顯示圖形對(duì)象

BarRenderer3D barRenderer3d = (BarRenderer3D) categoryPlot

.getRenderer();

// 設(shè)置不顯示邊框線

barRenderer3d.setDrawBarOutline(false);

// 將圖表已數(shù)據(jù)流的方式返回給客戶端

ChartUtilities.writeChartAsPNG(outputStream, jfreechart,

500, 270);

}

private static CategoryDataset createDataset() {

// 時(shí)間維度

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];

// 模擬添 數(shù)據(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{

// 打開(kāi)一個(gè)輸出流

OutputStream outputStream=new

FileOutputStream("BarChart2.png");

// 獲取數(shù)據(jù)集對(duì)象

IntervalXYDataset dataset = createDataset();

// 創(chuàng)建圖形對(duì)象

JFreeChart jfreechart =

ChartFactory.createXYBarChart("08年圖書銷售量", null,

false, "銷量", dataset,

PlotOrientation.VERTICAL, true, false,

false);

// 設(shè)置背景為白色

jfreechart.setBackgroundPaint(Color.white);

// 獲得圖表區(qū)域?qū)ο?/p>

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

// 設(shè)置區(qū)域?qū)ο蟊尘盀榛疑?/p>

xyplot.setBackgroundPaint(Color.lightGray);

// 設(shè)置區(qū)域?qū)ο缶W(wǎng)格線調(diào)為白色

xyplot.setDomainGridlinePaint(Color.white);

xyplot.setRangeGridlinePaint(Color.white);

// 獲顯示圖形對(duì)象

XYBarRenderer xybarrenderer = (XYBarRenderer)

xyplot.getRenderer();

// 設(shè)置不顯示邊框線

xybarrenderer.setDrawBarOutline(false);

//

將圖表已數(shù)據(jù)流的方式返回給客戶端

ChartUtilities.writeChartAsPNG(outputStream,

jfreechart,

500, 270);

}

private static

IntervalXYDataset createDataset() {

// 創(chuàng)建基本數(shù)據(jù)

XYSeries xyseries = new XYSeries("JAVA");

XYSeries xyseries1 = new XYSeries("PHP");

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

//

添加數(shù)據(jù)

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{

// 打開(kāi)一個(gè)輸出流

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

// 獲取數(shù)據(jù)集對(duì)象

IntervalXYDataset dataset = createDataset();

// 創(chuàng)建圖形對(duì)象

JFreeChart jfreechart = ChartFactory.createXYBarChart("08年圖書銷售量", null,

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

false);

// 設(shè)置背景為白色

jfreechart.setBackgroundPaint(Color.white);

// 獲得圖表區(qū)域?qū)ο?/p>

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

// 設(shè)置區(qū)域?qū)ο蟊尘盀榛疑?/p>

xyplot.setBackgroundPaint(Color.lightGray);

// 設(shè)置區(qū)域?qū)ο缶W(wǎng) 線調(diào)為白色

xyplot.setDomainGridlinePaint(Color.white);

xyplot.setRangeGridlinePaint(Color.white);

// 獲顯示圖形對(duì)象

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

// 設(shè)置不顯示邊框線

xybarrenderer.setDrawBarOutline(false);

// 將圖表已數(shù)據(jù)流的方式返回給客戶端

ChartUtilities.writeChartAsPNG(outputStream, jfreechart,

500, 270);

}

private static IntervalXYDataset createDataset() {

// 創(chuàng)建基本數(shù)據(jù)

XYSeries xyseries = new XYSeries("JAVA");

XYSeries xyseries1 = new XYSeries("PHP");

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

// 添 數(shù)據(jù)

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{

// 打開(kāi)一個(gè)輸出流

OutputStream outputStream=new

FileOutputStream("LineChart.png");

// 獲取數(shù)據(jù)集對(duì)象

CategoryDataset dataset = createDataset();

// 創(chuàng)建圖形對(duì)象

JFreeChart jfreechart =

ChartFactory.createLineChart("08年圖書銷售量",

null, "銷售量", dataset,

PlotOrientation.VERTICAL, false, true,

false);

// 設(shè)置圖表的子標(biāo)題

jfreechart.addSubtitle(new

TextTitle("按月份"));

// 創(chuàng)建一個(gè)標(biāo)題

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

new Date());

// 設(shè)置標(biāo)題字體

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

// 設(shè)置標(biāo)題向下對(duì)齊

texttitle.setPosition(RectangleEdge.BOTTOM);

// 設(shè)置標(biāo)題向右對(duì)齊

texttitle.setHorizontalAlignment(HorizontalAlignment.RIGHT);

// 添加圖表的子標(biāo)題

jfreechart.addSubtitle(texttitle);

// 設(shè)置圖表的背景色為白色

jfreechart.setBackgroundPaint(Color.white);

// 獲得圖表區(qū)域?qū)ο?/p>

CategoryPlot categoryplot = (CategoryPlot)

jfreechart.getPlot();

categoryplot.setBackgroundPaint(Color.lightGray);

categoryplot.setRangeGridlinesVisible(false);

// 獲顯示線條對(duì)象

LineAndShapeRenderer lineandshaperenderer =

(LineAndShapeRenderer) categoryplot

.getRenderer();

lineandshaperenderer.setBaseShapesVisible(true);

lineandshaperenderer.setDrawOutlines(true);

lineandshaperenderer.setUseFillPaint(true);

lineandshaperenderer.setBaseFillPaint(Color.white);

// 設(shè)置折線加粗

lineandshaperenderer.setSeriesStroke(0, new

BasicStroke(3F));

lineandshaperenderer.setSeriesOutlineStroke(0,

new BasicStroke(2.0F));

// 設(shè)置折線拐點(diǎn)

lineandshaperenderer.setSeriesShape(0,

new

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

//

將圖表已數(shù)據(jù)流的方式返回給客戶端

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{

// 打開(kāi)一個(gè)輸出流

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

// 獲取數(shù)據(jù)集對(duì)象

CategoryDataset dataset = createDataset();

// 創(chuàng)建圖形對(duì)象

JFreeChart jfreechart = ChartFactory.createLineChart("08年圖書銷售量",

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

false);

// 設(shè)置圖表的子 題

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

// 創(chuàng)建一個(gè) 題

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

// 設(shè)置 題字體

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

// 設(shè)置 題向下對(duì)齊

texttitle.setPosition(RectangleEdge.BOTTOM);

// 設(shè)置 題向右對(duì)齊

texttitle.setHorizontalAlignment(HorizontalAlignment.RIGHT);

// 添 圖表的子 題

jfreechart.addSubtitle(texttitle);

// 設(shè)置圖表的背景色為白色

jfreechart.setBackgroundPaint(Color.white);

// 獲得圖表區(qū)域?qū)ο?/p>

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

categoryplot.setBackgroundPaint(Color.lightGray);

categoryplot.setRangeGridlinesVisible(false);

// 獲顯示線條對(duì)象

LineAndShapeRenderer lineandshaperenderer = (LineAndShapeRenderer) categoryplot

.getRenderer();

lineandshaperenderer.setBaseShapesVisible(true);

lineandshaperenderer.setDrawOutlines(true);

lineandshaperenderer.setUseFillPaint(true);

lineandshaperenderer.setBaseFillPaint(Color.white);

// 設(shè)置折線 粗

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

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

// 設(shè)置折線拐點(diǎn)

lineandshaperenderer.setSeriesShape(0,

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

// 將圖表已數(shù)據(jù)流的方式返回給客戶端

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、區(qū)域圖

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{

// 打開(kāi)一個(gè)輸出流

OutputStream outputStream=new

FileOutputStream("AreaChart.png");

// 獲取數(shù)據(jù)集對(duì)象

CategoryDataset dataset = createDataset();

// 創(chuàng)建圖形對(duì)象

JFreeChart jfreechart =

ChartFactory.createAreaChart("08年圖書銷售量排名",

"按季度", "銷量",

dataset, PlotOrientation.VERTICAL, true, true,

false);

// 獲得圖表區(qū)域?qū)ο?/p>

CategoryPlot categoryplot = (CategoryPlot)

jfreechart.getPlot();

//設(shè)置前景色為50%透明

categoryplot.setForegroundAlpha(0.5F);

//設(shè)置X軸偏移量

categoryplot.setAxisOffset(new

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

//設(shè)置北景色為淺灰色

categoryplot.setBackgroundPaint(Color.lightGray);

//設(shè)置顯示網(wǎng)格線

categoryplot.setDomainGridlinesVisible(true);

//設(shè)置網(wǎng)格線為白色

categoryplot.setDomainGridlinePaint(Color.white);

//設(shè)置顯示邊界線

categoryplot.setRangeGridlinesVisible(true);

//設(shè)置顯示邊界線為白色

categoryplot.setRangeGridlinePaint(Color.white);

//獲得X軸對(duì)象

CategoryAxis categoryaxis =

categoryplot.getDomainAxis();

//設(shè)置X軸標(biāo)簽位置為45度角

categoryaxis.setCategoryLabelPositions(CategoryLabelPositions.UP_45);

//設(shè)置與X軸的補(bǔ)白為0

categoryaxis.setLowerMargin(0.0D);

categoryaxis.setUpperMargin(0.0D);

//

將圖表已數(shù)據(jù)流的方式返回給客戶端

ChartUtilities.writeChartAsPNG(outputStream,

jfreechart,

500, 270);

}

private static

CategoryDataset createDataset() {

// 時(shí)間維度

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];

// 模擬添加數(shù)據(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{

// 打開(kāi)一個(gè)輸出流

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

// 獲取數(shù)據(jù)集對(duì)象

CategoryDataset dataset = createDataset();

// 創(chuàng)建圖形對(duì)象

JFreeChart jfreechart = ChartFactory.createAreaChart("08年圖書銷售量排名",

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

false);

// 獲得圖表區(qū)域?qū)ο?/p>

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

//設(shè)置前景色為50%透明

categoryplot.setForegroundAlpha(0.5F);

//設(shè)置X軸偏移量

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

//設(shè)置北景色為淺灰色

categoryplot.setBackgroundPaint(Color.lightGray);

//設(shè)置顯示網(wǎng) 線

categoryplot.setDomainGridlinesVisible(true);

//設(shè)置網(wǎng) 線為白色

categoryplot.setDomainGridlinePaint(Color.white);

//設(shè)置顯示邊界線

categoryplot.setRangeGridlinesVisible(true);

//設(shè)置顯示邊界線為白色

categoryplot.setRangeGridlinePaint(Color.white);

//獲得X軸對(duì)象

CategoryAxis categoryaxis = categoryplot.getDomainAxis();

//設(shè)置X軸 簽位置為45度角

categoryaxis.setCategoryLabelPositions(CategoryLabelPositions.UP_45);

//設(shè)置與X軸的補(bǔ)白為0

categoryaxis.setLowerMargin(0.0D);

categoryaxis.setUpperMargin(0.0D);

// 將圖表已數(shù)據(jù)流的方式返回給客戶端

ChartUtilities.writeChartAsPNG(outputStream, jfreechart,

500, 270);

}

private static CategoryDataset createDataset() {

// 時(shí)間維度

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];

// 模擬添 數(shù)據(jù)

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

}

}

return defaultdataset;

}

}

效果:

5、時(shí)序圖

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;

總結(jié)

以上是生活随笔為你收集整理的java生成统计图_java生成各种统计图的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。