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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

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

發布時間:2023/12/16 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java生成统计图_java生成各种统计图 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目錄:

一、圖形及代碼:

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生成各种统计图的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。