`

JFreeChart类生成折线图的Java源代码

阅读更多


import java.awt.BasicStroke; 
import java.awt.Color; 
import java.awt.Polygon; 
import java.awt.Shape; 
import java.awt.geom.Rectangle2D; 

import org.jfree.chart.ChartFactory; 
import org.jfree.chart.ChartPanel; 
import org.jfree.chart.JFreeChart; 
import org.jfree.chart.axis.NumberAxis; 
import org.jfree.chart.plot.CategoryPlot; 
import org.jfree.chart.plot.DefaultDrawingSupplier; 
import org.jfree.chart.plot.DrawingSupplier; 
import org.jfree.chart.plot.PlotOrientation; 
import org.jfree.chart.renderer.category.LineAndShapeRenderer; 
import org.jfree.data.category.CategoryDataset; 
import org.jfree.data.category.DefaultCategoryDataset; 
import org.jfree.ui.ApplicationFrame; 
import org.jfree.ui.RefineryUtilities; 

/** 
* A line chart demo showing the use of a custom drawing supplier. 
* 
*/ 
public class LineChartDemo5 extends ApplicationFrame { 

/** 
* Creates a new demo. 
* 
* @param title the frame title. 
*/ 
public LineChartDemo5(final String title) { 
super(title); 
final CategoryDataset dataset = createDataset(); 
final JFreeChart chart = createChart(dataset); 
final ChartPanel chartPanel = new ChartPanel(chart); 
chartPanel.setPreferredSize(new java.awt.Dimension(500, 270)); 
setContentPane(chartPanel); 

} 

/** 
* Creates a sample dataset. 
* 
* @return a sample dataset. 
*/ 
private CategoryDataset createDataset() { 

// row keys... 
final String series1 = "First"; 
final String series2 = "Second"; 
final String series3 = "Third"; 

// column keys... 
final String type1 = "Type 1"; 
final String type2 = "Type 2"; 
final String type3 = "Type 3"; 
final String type4 = "Type 4"; 
final String type5 = "Type 5"; 
final String type6 = "Type 6"; 
final String type7 = "Type 7"; 
final String type8 = "Type 8"; 

// create the dataset... 
final DefaultCategoryDataset dataset = new DefaultCategoryDataset(); 

dataset.addValue(1.0, series1, type1); 
dataset.addValue(4.0, series1, type2); 
dataset.addValue(3.0, series1, type3); 
dataset.addValue(5.0, series1, type4); 
dataset.addValue(5.0, series1, type5); 
dataset.addValue(7.0, series1, type6); 
dataset.addValue(7.0, series1, type7); 
dataset.addValue(8.0, series1, type8); 

dataset.addValue(5.0, series2, type1); 
dataset.addValue(7.0, series2, type2); 
dataset.addValue(6.0, series2, type3); 
dataset.addValue(8.0, series2, type4); 
dataset.addValue(4.0, series2, type5); 
dataset.addValue(4.0, series2, type6); 
dataset.addValue(2.0, series2, type7); 
dataset.addValue(1.0, series2, type8); 

dataset.addValue(4.0, series3, type1); 
dataset.addValue(3.0, series3, type2); 
dataset.addValue(2.0, series3, type3); 
dataset.addValue(3.0, series3, type4); 
dataset.addValue(6.0, series3, type5); 
dataset.addValue(3.0, series3, type6); 
dataset.addValue(4.0, series3, type7); 
dataset.addValue(3.0, series3, type8); 

return dataset; 

} 

/** 
* Creates a sample chart. 
* 
* @param dataset the dataset. 
* 
* @return a chart. 
*/ 
private JFreeChart createChart(final CategoryDataset dataset) { 

final JFreeChart chart = ChartFactory.createLineChart( 
"Line Chart Demo 5", // chart title 
"Type", // domain axis label 
"Value", // range axis label 
dataset, // data 
PlotOrientation.VERTICAL, // orientation 
true, // include legend 
true, // tooltips 
false // urls 
); 

// final StandardLegend legend = (StandardLegend) chart.getLegend(); 
// legend.setDisplaySeriesShapes(true); 

final Shape[] shapes = new Shape[3]; 
int[] xpoints; 
int[] ypoints; 

// right-pointing triangle 
xpoints = new int[] {-3, 3, -3}; 
ypoints = new int[] {-3, 0, 3}; 
shapes[0] = new Polygon(xpoints, ypoints, 3); 

// vertical rectangle 
shapes[1] = new Rectangle2D.Double(-2, -3, 3, 6); 

// left-pointing triangle 
xpoints = new int[] {-3, 3, 3}; 
ypoints = new int[] {0, -3, 3}; 
shapes[2] = new Polygon(xpoints, ypoints, 3); 

final DrawingSupplier supplier = new DefaultDrawingSupplier( 
DefaultDrawingSupplier.DEFAULT_PAINT_SEQUENCE, 
DefaultDrawingSupplier.DEFAULT_OUTLINE_PAINT_SEQUENCE, 
DefaultDrawingSupplier.DEFAULT_STROKE_SEQUENCE, 
DefaultDrawingSupplier.DEFAULT_OUTLINE_STROKE_SEQUENCE, 
shapes 
); 
final CategoryPlot plot = chart.getCategoryPlot(); 
plot.setDrawingSupplier(supplier); 

chart.setBackgroundPaint(Color.yellow); 

// set the stroke for each series... 
plot.getRenderer().setSeriesStroke( 
0, 
new BasicStroke( 
2.0f, BasicStroke.CAP_ROUND, BasicStroke.JOIN_ROUND, 
1.0f, new float[] {10.0f, 6.0f}, 0.0f 
) 
); 
plot.getRenderer().setSeriesStroke( 
1, 
new BasicStroke( 
2.0f, BasicStroke.CAP_ROUND, BasicStroke.JOIN_ROUND, 
1.0f, new float[] {6.0f, 6.0f}, 0.0f 
) 
); 
plot.getRenderer().setSeriesStroke( 
2, 
new BasicStroke( 
2.0f, BasicStroke.CAP_ROUND, BasicStroke.JOIN_ROUND, 
1.0f, new float[] {2.0f, 6.0f}, 0.0f 
) 
); 

// customise the renderer... 
final LineAndShapeRenderer renderer = (LineAndShapeRenderer) plot.getRenderer(); 
// renderer.setDrawShapes(true); 
renderer.setItemLabelsVisible(true); 
// renderer.setLabelGenerator(new StandardCategoryLabelGenerator()); 

// customise the range axis... 
final NumberAxis rangeAxis = (NumberAxis) plot.getRangeAxis(); 
rangeAxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits()); 
rangeAxis.setAutoRangeIncludesZero(false); 
rangeAxis.setUpperMargin(0.12); 

return chart; 

} 

public static void main(final String[] args) { 

final LineChartDemo5 demo = new LineChartDemo5("Line Chart Demo 5"); 
demo.pack(); 
RefineryUtilities.centerFrameOnScreen(demo); 
demo.setVisible(true); 

} 

}

 
 

  • 大小: 25.2 KB
分享到:
评论
1 楼 fool2011 2012-09-09  
学习下,博主

相关推荐

    jfreechart_生成折线图,饼图,柱状图,堆栈柱状图

    《使用JFreeChart生成折线图、饼图、柱状图和堆栈柱状图》 JFreeChart是一款强大的开源Java图表库,它允许开发者在应用程序、报告或网页中生成各种高质量的图表,包括折线图、饼图、柱状图和堆栈柱状图等。这篇文档...

    jfreechart 生成折线图,饼图,柱状图,堆栈柱状图

    标题中提到的“jfreechart生成折线图、饼图、柱状图、堆栈柱状图”是指使用Java的一个开源图形库JFreeChart来创建不同类型的统计图表。JFreeChart是一个功能全面、成熟的Java图表库,广泛应用于各种应用程序中进行...

    java制作jfreechart柱状图 饼状图 折线图

    Java中的JFreeChart库是一个强大的工具,用于生成各种类型的图表,包括柱状图、饼状图和折线图。在本教程中,我们将深入探讨如何使用JFreeChart创建这些图表,以及如何用随机生成的数据作为数据源。 首先,...

    jfreechart根据24小时数据画折线图

    jfreechart是一款基于Java的开源图表绘制库,它能够帮助开发者轻松地在应用程序中生成各种图表,包括折线图、饼图、柱状图等。它的主要优势在于功能强大、配置灵活,并且支持导出多种格式的图表图像。 #### 二、...

    jfreechart生成图片及导出pdf 、excel

    JFreeChart是一款强大的Java图表库,它允许开发者在应用程序、Swing组件或Web应用中创建各种图表,如柱状图、饼图、折线图等。这个库支持丰富的定制选项,使得图表可以按照用户需求进行个性化设计。在这个...

    java 生成网页图片Web源代码

    这个项目,"java 生成网页图片Web源代码",显然关注的就是如何使用Java来创建和处理图片,特别是在Web环境中的应用。以下是相关的知识点详解: 1. **Java图像处理库**:Java提供了内置的`java.awt`和`javax.imageio...

    JFreeChart实时折线图

    JFreeChart是一款强大的Java图表库,它允许开发者创建多种类型的图表,包括折线图、柱状图、饼图、散点图等。在本场景中,我们关注的是如何使用JFreeChart来实现实时更新的折线图。下面将详细介绍这个过程。 首先,...

    JFreeChart生成图片并显示

    在提供的`src`目录下,可能包含了项目的源代码,包括JFreeChart的使用示例。`WEB-INF`目录是标准的Web应用结构的一部分,通常包含`web.xml`配置文件和其他资源。 总的来说,JFreeChart是一个强大且灵活的Java图表库...

    JFreeChart developer guide 配套的源代码

    总之,JFreeChart 的开发者指南源代码是一个深入了解图表生成和定制的绝佳资源。通过深入学习和实践,你不仅可以掌握 JFreeChart 的基本用法,还能提升你的 Java 图形编程能力,为你的项目提供强大的可视化支持。

    jFreeChart生成报表图片

    5. **使用方法**:在jFreeChartWeb项目中,开发者可以通过阅读源代码学习如何创建和配置这些图表。通常,需要先创建一个图表对象,然后设置所需的属性(如标题、数据集、颜色等),最后渲染成图像。对于Web应用,...

    struts2+jfreeChartStruts简单生成折线图

    总的来说,"struts2+jfreeChartStruts简单生成折线图"项目展示了如何利用Struts2的控制层和JFreeChart的视图层,实现一个简单的Web应用程序,动态生成折线图。这种技术结合可以有效地提高开发效率,同时提供丰富的...

    JFreeChart Demo源代码

    1. **图表类型**:JFreeChart支持多种图表类型,包括CategoryChart(分类图表,如柱状图和折线图)、PieChart(饼图)、XYChart(XY坐标系图表,如散点图和线图)、TimeSeriesChart(时间序列图表)等。通过Demo,你...

    Freemarker导出word示例,包括jfreechart图表

    - Java源代码,展示了如何使用Freemarker和JFreechart进行操作。 - 图表生成的临时图像文件,用于插入到Word文档中。 - 最终生成的Word文档示例。 总的来说,这个示例提供了使用Freemarker和JFreechart生成带有动态...

    jfreechart demo 1.0.8 源代码

    4. **绘图框架**:Demo源代码中包含了如何使用ChartFactory类来快速生成标准图表,以及如何使用ChartBuilder类进行更高级的定制。这为我们提供了快速入门和深入探索的路径。 5. **颜色和样式**:JFreeChart允许...

    JFreeChart生成3D饼状图及柱状图

    JFreeChart是一款强大的Java图表库,它允许开发者创建多种类型的2D和3D图表,包括折线图、柱状图、饼状图、散点图等,并且支持自定义样式和颜色,使得数据可视化变得更加直观和生动。在这个特定的场景中,我们将关注...

    jfreechart-1.0.13-demo源代码 例子

    JFreeChart库广泛应用于数据分析、报告生成、科学图表、商业智能等领域,它的强大之处在于其灵活性和多样性,可以生成饼图、柱状图、折线图、散点图、甘特图等多种图表类型。源代码示例通常包括了各种图表类型的创建...

    jfreechart 与struts2的柱状图以及折线图例子

    JFreeChart是一个强大的Java图表库,它支持生成各种类型的图表,包括柱状图、折线图、饼图、散点图等。JFreeChart通过API提供了丰富的自定义选项,可以调整颜色、样式、标签等,以满足不同场景的需求。在Web应用中,...

    jfreechart生成报表图片.zip

    这个“jfreechart生成报表图片.zip”压缩包包含了一组资源,可以帮助你快速创建各种类型的图表,如柱状图、饼图、折线图等,非常适合用于数据可视化。 1. **JFreeChart库介绍**: JFreeChart是开源的Java库,它...

    Spring+Struts+JFreeChart 自动生成统计图

    JFreeChart是一个强大的Java库,专门用于生成各种类型的统计图表,包括折线图、柱状图、饼图、散点图等。在“Spring+Struts+JFreeChart”项目中,JFreeChart是负责实际数据可视化的部分。它可以从数据库或其他数据源...

    java报表jfreechart开发

    JFreeChart是一款免费且开源的Java图表库,它提供了多种类型的图表绘制功能,如饼图、条形图、折线图等。JFreeChart适用于各种Java应用程序中,包括但不限于桌面应用、Web应用以及移动应用。它不仅能够生成高质量的...

Global site tag (gtag.js) - Google Analytics