package com.test.jfree;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartFrame;
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.data.category.CategoryDataset;
import org.jfree.data.general.DatasetUtilities;
//JFreeChart Line Chart(折线图)
public class CreateJFreeChartLine {
public static void main(String[] args) {
// 步骤1:创建CategoryDataset对象(准备数据)
CategoryDataset dataset = createDataset();
// 步骤2:根据Dataset 生成JFreeChart对象,以及做相应的设置
JFreeChart freeChart = createChart(dataset);
// 步骤3:将JFreeChart对象输出到文件,Servlet输出流等
// saveAsFile(freeChart, "c:\\line.jpg", 600, 400);
ChartFrame preview = new ChartFrame("zs information",freeChart);
preview.setSize(1000,400);
preview.setVisible(true);
}
// 保存为文件
public static void saveAsFile(JFreeChart chart, String outputPath,
int weight, int height) {
FileOutputStream out = null;
try {
File outFile = new File(outputPath);
if (!outFile.getParentFile().exists()) {
outFile.getParentFile().mkdirs();
}
out = new FileOutputStream(outputPath);
// 保存为PNG
// ChartUtilities.writeChartAsPNG(out, chart, 600, 400);
// 保存为JPEG
ChartUtilities.writeChartAsJPEG(out, chart, 600, 400);
out.flush();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
if (out != null) {
try {
out.close();
} catch (IOException e) {
// do nothing
}
}
}
}
// 根据CategoryDataset创建JFreeChart对象
public static JFreeChart createChart(CategoryDataset categoryDataset) {
// 创建JFreeChart对象:ChartFactory.createLineChart
JFreeChart jfreechart = ChartFactory.createLineChart("titles", // 标题
"years", // categoryAxisLabel (category轴,横轴,X轴标签)
"total", // valueAxisLabel(value轴,纵轴,Y轴的标签)
categoryDataset, // dataset
PlotOrientation.VERTICAL, true, // legend
false, // tooltips
false); // URLs
// 使用CategoryPlot设置各种参数。以下设置可以省略。
CategoryPlot plot = (CategoryPlot) jfreechart.getPlot();
// 背景色 透明度
plot.setBackgroundAlpha(0.5f);
// 前景色 透明度
plot.setForegroundAlpha(0.5f);
// 其他设置 参考 CategoryPlot类
return jfreechart;
}
public static CategoryDataset createDataset() {
String[] rowKeys = { "A_tip" };
String[] colKeys = { "0:00", "1:00", "2:00", "7:00", "8:00", "9:00",
"10:00", "11:00", "12:00", "13:00", "16:00", "20:00", "21:00",
"23:00" };
double[][] data = { { 1.5, 3, 50, 1, 1, 1, 2, 20, 2, 1, 3, 2, 1, 1 }
};
// 或者使用类似以下代码
// DefaultCategoryDataset categoryDataset = new
// DefaultCategoryDataset();
// categoryDataset.addValue(10, "rowKey", "colKey");
return DatasetUtilities.createCategoryDataset(rowKeys, colKeys, data);
}
}
分享到:
相关推荐
在本文中,我们将深入探讨如何使用 JFreeChart 创建折线图,并通过一系列实例来展示其实现过程。 首先,要创建折线图,我们需要准备数据。数据可以是简单的数组或列表,包含了各个点的坐标值。例如,我们可以有以下...
JFreeChart是一款强大的Java图表库,它允许开发者创建多种类型的2D和3D图表,包括饼图、柱状图和折线图等。在Java应用中,这些图表常用于数据可视化,帮助用户直观理解复杂的数据信息。下面我们将详细介绍如何使用...
JFreeChart 是一个开源的Java库,用于生成高质量的2D图表,如折线图、饼图、柱状图和堆栈柱状图等。它广泛应用于数据分析、报告和应用程序中,提供丰富的自定义选项来满足各种视觉需求。在本项目中,你将找到能够...
JFreeChart双Y轴折线图实例,可以直接运行,实例类为LineChartDemo1.JAVA,有注释。 若想在web工程使用只需如下。 String filename = ServletUtilities.saveChartAsPNG(jfreechart, 600, 400, null, session); ...
在Java编程领域,JFreeChart是一个非常流行的图表库,它允许开发者创建各种复杂的数据可视化图形,包括折线图、柱状图、饼图等。在本篇博客中,"JfreeChart画双Y轴折线图"的主题,将探讨如何使用JFreeChart库来创建...
jfreechat软件demo
jfreechat,此文件包含图形的事例,和源代码的实现,开发人员可以根据图形直接把源码拷贝过来应用
Eclipse建立的WEB项目 做的3种 柱状图 带突出的饼图 线性图 的实例效果 柱状图数据采用随机数充当数据(为了看到实时变化的图形效果) 直接导入项目运行即可 http://localhost:8080/JFreechat/index.jsp
JFreeChart 是一个流行的Java库,它允许开发人员创建各种图表,包括柱状图、线图、饼状图以及树状图等。这篇博客文章“JFreeChart 生成树状图,饼状图实例”显然会探讨如何利用JFreeChart库来创建这两种类型的图表,...
JFreeChart是一款流行的Java图表库,它提供了丰富的图表类型,如折线图、柱状图、饼图等,广泛应用于数据分析和可视化项目。然而,在某些Linux发行版,尤其是Ubuntu中,由于默认字体不支持或者配置问题,可能导致...
JFreeChart是一款强大的Java图表库,它允许开发者创建多种类型的图表,包括线性图、饼图、柱状图、散点图等,并可以方便地集成到Java应用、Web应用或Swing应用中。在给定的标题“jfreechart线性图”中,主要讨论的是...
3. **线图(Line Chart)**:线图用于描绘数据随时间的变化趋势,JFreeChart支持折线图、曲线图,还可以添加标记点和趋势线,帮助用户识别模式和趋势。 4. **区域图(Area Chart)**:与线图类似,但填充了线下方的...
JFreeChart是一个强大的Java库,用于创建各种图表,如折线图、柱状图、饼图、散点图、甘特图以及更多。这个库在IT行业中被广泛使用,尤其在数据分析、报表生成和可视化应用中。标题"jfreechart的例子"表明我们将探讨...
JFreeChart是一个强大的Java库,用于创建各种图表,如折线图、饼状图和柱状图等。在"jsp报表jfreechat学习案例"中,我们主要关注如何利用JFreeChart与JavaServer Pages(JSP)技术结合,生成动态且交互式的报表。...
JFreeChart是一个用纯Java编写的图表库,支持多种类型的图表,如折线图、柱状图、饼图、散点图等。开发者可以通过设置各种属性来定制图表的样式,包括颜色、字体、标记等,以满足不同场景的需求。此外,JFreeChart还...
首先,JFreeChart是一款强大的Java库,它允许开发者创建各种类型的图表,如折线图、柱状图、饼图、散点图等,模拟出类似水晶报表的效果。JFreeChart的强大之处在于其灵活性和定制性,开发者可以根据需求自定义图表的...
JFreeChat中文教程(入门篇).rar
JFreeChat中文API,大致方法和说明都有,希望对需要的人有用。