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生成各种统计图相关推荐
- java给定任意_java生成任意整数随机数(任意指定范围)
Math.random() jdk1.8文档描述: 1.求:范围为 [ 0 ,352324 ] 之间的随机数.(包括临界值) (int)( Math.random () * ( 352324 +1) ...
- java 单开程序_java生成jar包并且单进程运行的实例
java文件打包jar运行 有效步骤: 1.cmd 到当前目录(默认包主类所在目录为例) set classpath = 默认包主类所在目录 2.javac 主类名.java 3.java 主类名 4 ...
- java生成密码_java生成密码生成 | 学步园
一.根据当前日期生成MD5加密密码 package com.test; import java.security.MessageDigest; import java.text.SimpleDateF ...
- java随机姓名_Java生成随机姓名、性别和年龄的实现示例
一.定义实体类Person,封装生成的数据 package net.dc.test; public class Person { private String name; private String ...
- java 日期随机数_Java 生成指定时间范围的随机时间、随机中文姓名、随机字符姓名、随机数...
解决问题: Java生成指定时间范围的随机时间? Java生成随机中文姓名? Java生成随机字符姓名? Java生成随机数? 代码: import java.io.UnsupportedEncodi ...
- java 生成随机数_Java 生成随机数的 N 种方法
原标题:Java 生成随机数的 N 种方法 www.baeldung.com/java-generating-random-numbers 1.引言 本文将探讨用 Java 生成随机数的不同方法. 2 ...
- java uuid 第三方_JAVA生成短8位UUID
java 原创,转载需注明. 短8位UUID思想其实借鉴微博短域名的生成方式,但是其重复概率过高,而且每次生成4个,需要随即选取一个. 本算法利用62个可打印字符,通过随机生成32位UUID,由于UU ...
- java生成条码_Java生成商品条形码
之前没有使用过这个,现在使用JBarcode生成商品条形码,工作之前的准备工作: Eclipse: Eclipse Java EE IDE for Web Developers. Version: H ...
- java word插件开发_java生成word的几种方案
1. Jacob是Java-COM Bridge的缩写,它在Java与微软的COM组件之间构建一座桥梁.使用Jacob自带的DLL动态链接库,并通过JNI的方式实现了在Java平台上对COM程序的调用 ...
- java的可执行文件_java生成可执行文件的方法总结
第一种:在jbuilder中: 首先你要保证Run菜单-->Run Project能顺利运行 然后Wizards菜单-->Native Executable Bui ...
最新文章
- 25个增强iOS应用程序性能的提示和技巧 — 中级篇
- 【算法导论】冒泡排序 选择排序
- 在浏览器控制台执行以下代码,输入的结果是()
- jQuery源码分析 整体框架部分及部分常用方法
- 库克看下!罗永浩深夜再谈收购苹果:还需要点时间
- Kubernetes Dashboard on Ubuntu 16.04安装记录
- 在odoo服务器文件夹,在windows10上安装odoo12开发环境的方法
- Vue项目用webpack打包后,预览时资源路径出错(文末有vue项目链接分享)
- 服装行业SCM供应链管理平台优化资源配置效率,促进企业提质增效
- 拼多多总显示服务器冻僵,为什么拼多多商家后台会打不开?什么原因导致的?
- 计算机rank函数排名怎么用,用好RANK函数 跨表排名不用愁
- 计算机领域获奖感言,期中考试获奖感言
- 新手如何配置WordPress站点
- 任何情况下请通过正规渠道变更信用卡额度
- linux 释放内存
- Mac清倒废纸篓提示“voicetrigger“在使用中
- 关于8583报文详解
- cf网络不稳定或服务器异常,电脑玩穿越火线为什么提示网络环境异常 - 卡饭网...
- [ISCC 2021]部分wp
- [c++]setw()用法总结