第一步:
-
- public class CreateJFreeChartXYLine {
-
- 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);
-
-
- ChartUtilities.writeChartAsPNG(out, chart,500, 400);
-
-
- out.flush();
- } catch (FileNotFoundException e) {
- e.printStackTrace();
- } catch (IOException e) {
- e.printStackTrace();
- } finally {
- if (out != null) {
- try {
- out.close();
- } catch (IOException e) {
-
- }
- }
- }
- }
-
-
- public static JFreeChart createChart(XYDataset dataset) {
-
- JFreeChart jfreechart = ChartFactory.createTimeSeriesChart("折线模型图",
- "年份", "数量", dataset, false, true, false);
- jfreechart.getTitle().setFont(new Font("宋体", Font.BOLD, 12));
-
- XYPlot plot = (XYPlot) jfreechart.getPlot();
-
- plot.setBackgroundAlpha(0.5f);
-
- plot.setForegroundAlpha(0.5f);
-
- ValueAxis categoryaxis = plot.getDomainAxis();
- categoryaxis.setPositiveArrowVisible(true);
- plot.getRangeAxis().setPositiveArrowVisible(true);
- categoryaxis.setTickLabelFont(new Font("宋体", 10, 12));
- DateAxis axis = (DateAxis) plot.getDomainAxis();
- axis.setDateFormatOverride(new SimpleDateFormat("MM月"));
- NumberAxis numberaxis = new NumberAxis("统计报表");
- numberaxis.setAutoRangeIncludesZero(false);
- plot.setRangeAxis(1, numberaxis);
- plot.setDataset(1, dataset);
- plot.mapDatasetToRangeAxis(1, 1);
- XYItemRenderer xyitemrenderer = plot.getRenderer();
- StandardXYItemRenderer standardxyitemrenderer1 = new StandardXYItemRenderer();
- standardxyitemrenderer1.setSeriesPaint(0, Color.black);
- standardxyitemrenderer1.setSeriesPaint(0, Color.black);
- standardxyitemrenderer1.setPlotLines(true);
- LegendTitle legendtitle = new LegendTitle(xyitemrenderer);
- LegendTitle legendtitle1 = new LegendTitle(standardxyitemrenderer1);
- BlockContainer blockcontainer = new BlockContainer(
- new BorderArrangement());
- blockcontainer.add(legendtitle, RectangleEdge.LEFT);
- blockcontainer.add(legendtitle1, RectangleEdge.RIGHT);
- blockcontainer.add(new EmptyBlock(2000D, 0.0D));
- CompositeTitle compositetitle = new CompositeTitle(blockcontainer);
- compositetitle.setPosition(RectangleEdge.BOTTOM);
- jfreechart.addSubtitle(compositetitle);
- Font font2 = new Font("宋体", 10, 16);
- plot.getDomainAxis().setLabelFont(font2);
- plot.getRangeAxis().setLabelFont(font2);
- return jfreechart;
- }
-
-
-
-
-
- public static XYDataset createXYDataset() {
- MyChartService ms = new MyChartService();
-
- TimeSeriesCollection timeseriescollection = new TimeSeriesCollection();
- List<String> names = ms.listall();
- for (String name : names) {
- System.out.println(name);
- TimeSeries timeseries = new TimeSeries(name);
- List<MyChart> mcs = ms.FindByName(name);
- for (MyChart mc : mcs) {
- Calendar cc = Calendar.getInstance();
- System.out.println(mc.getScore());
- cc.setTime(mc.getDate());
- timeseries.add(new Month(cc.get(Calendar.MONTH), cc
- .get(Calendar.YEAR)), mc.getScore());
-
-
- }
-
- timeseriescollection.addSeries(timeseries);
-
- }
-
- return timeseriescollection;
- }
第二步:如果配合Struts1使用的话
- request.setCharacterEncoding("gbk");
- response.setContentType("image/jpeg;charset=gbk");
- MyChartService ms=new MyChartService();
-
- XYDataset dataset =CreateJFreeChartXYLine.createXYDataset();
-
- JFreeChart freeChart =CreateJFreeChartXYLine.createChart(dataset);
-
- String url= "c:\\jfreechart\\lineXY.png";
- CreateJFreeChartXYLine.saveAsFile(freeChart,url, 900, 700);
- request.setAttribute("url", url);
- request.setAttribute("lists", ms.listall());
- return mapping.findForward("list");
直接将路径发到JSP页面,从而达到显示图片效果
分享到:
相关推荐
通过以上步骤,我们成功地使用jfreechart绘制了一个根据24小时数据变化的折线图,并自定义了X轴和Y轴的刻度,使图表更加符合实际需求。这种图表非常适合展示时间序列数据的变化趋势,对于数据分析和报告非常有用。
JFreeChart 是一个开源的Java库,用于生成高质量的、多样的图表,包括折线图、柱形图、饼图、散点图等。在这个特定的案例中,我们关注的是如何利用JFreeChart来创建折线图和柱形图的混合图表,这种图表在数据可视化...
以上就是使用JFreeChart库在Java Web环境中创建条形图、饼状图和折线图的基本方法。你可以根据实际需求调整颜色、样式、标签等属性,以实现更复杂的图表功能。通过JFreeChart,你可以轻松地为Web应用程序添加强大的...
本教程将详细讲解如何利用JFreeChart结合MySQL数据库来生成动态折线图,展示数据库中的数据。 首先,我们需要确保已经安装了JFreeChart库和MySQL的Java连接驱动(JDBC)。可以通过Maven或Gradle添加依赖,例如在...
JFreeChart是一个流行的开源图表库,用于生成各种类型的图表,包括折线图、柱状图、饼图等。下面我们将介绍如何使用JFreeChart简单实现光滑曲线绘制。 光滑曲线绘制 光滑曲线绘制是一种常用的图表绘制方式,用于...
JFreeChart支持基于分类数据集和XY数据集的折线图,可以根据需求进行高度定制。 **2.5 XY图** XY图是另一种类型的折线图,特别适用于展示两个变量之间的关系。JFreeChart提供了丰富的功能来创建和定制XY图。 **...
JFreeChart是一款强大的Java库,用于创建各种类型的2D图表,包括折线图、柱状图、饼图、散点图等。这个示例程序展示了如何利用JFreeChart通过文本数据来生成曲线图,这对于数据分析和可视化非常有用。下面我们将详细...
JFreeChart 支持多种类型的折线图,如简单折线图、时间序列折线图等。 **2.5 XY 图** XY 图适用于需要精确控制坐标轴的场景,如科学数据可视化。JFreeChart 的 XY 图功能强大,能够满足大多数需求。 **2.6 时间...
除了支持基于 XY 数据集的折线图外,JFreeChart 还允许创建基于分类数据集的折线图。这种方式适用于不需要连续 x 轴的情况。创建这类图表的过程与创建柱状图类似,但需要使用 `ChartFactory.createLineChart()` 方法...
JFreeChart是一款免费且开源的Java图表库,它提供了多种类型的图表绘制功能,如饼图、条形图、折线图等。JFreeChart适用于各种Java应用程序中,包括但不限于桌面应用、Web应用以及移动应用。它不仅能够生成高质量的...
在JFreeChart中,我们可以使用`XYChart`类来创建折线图。以下是一个简单的折线图创建示例: ```java import org.jfree.chart.ChartFactory; import org.jfree.chart.JFreeChart; import org.jfree.chart.plot....
JFreeChart是一个强大的Java库,它提供了多种图表类型,包括饼状图、折线图和柱状图,用于生成高质量的图形。首先,确保已经正确地将JFreeChart库引入到项目中,这通常通过Maven或Gradle依赖管理工具完成。 **饼状...
- **基于XY Dataset的折线图**:使用XY数据集创建折线图。 #### 2.4 Time Series Charts(时间序列图表) - **时间序列图表**:介绍了如何创建时间序列图表。 ### 3. 下载与安装 - **下载**:提供了获取JFreeChart...
- **简介**:介绍如何将JFreeChart生成的图表导出为Acrobat PDF格式。 - **Acrobat PDF介绍**:简要说明Acrobat PDF的特点及优势。 以上知识点总结了《JFreeChart 开发指南》的主要内容,为开发者提供了从入门到...
JFreeChart 是一个流行的、开源的 Java 图形库,它为开发者提供了丰富的图表绘制功能,包括折线图、柱状图、饼图、散点图、甘特图等多种类型。这个API文档是开发者理解和使用JFreeChart库的关键资源。本文将深入探讨...
- 折线图(XY Plot):在X轴和Y轴上分别表示两个独立的变量。 - 甘特图(Gantt Chart):用于项目管理,展示任务进度和时间线。 3. **使用步骤** 创建JFreeChart通常包括以下步骤: - 初始化数据源:使用`...
### JFreeChart 使用心得 #### 一、JFreeChart 的介绍与获取...以上示例代码展示了如何使用 JFreeChart 在 Web 应用中创建一个时间序列折线图。通过设置不同的参数和调用不同的方法,可以轻松地定制图表的外观和行为。
2. **图表类型**:JFreeChart 支持多种图表类型,包括条形图(Bar Chart)、饼图(Pie Chart)、线形图(Line Chart)、面积图(Area Chart)、折线图(XY Line Chart)、散点图(Scatter Plot)等,适用于不同的...
通过不同的数据集类型,可以创建标准折线图或XY折线图。 - **散点图 (XY Scatter Plots)**:用于显示两个变量之间的关系。每个数据点的位置由其X坐标和Y坐标决定。 - **时序图 (Time Series Charts)**:特别适合展示...
JFreeChart是一款强大的开源Java库,用于生成各种图表,包括折线图、柱状图、饼图、散点图、甘特图等。这款库广泛应用于数据分析、报告生成和数据可视化场景。这篇中文开发指南将帮助开发者更好地理解和使用...