`

JFreeChart生成折线图的经典Demo实例

阅读更多


 

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.green);

		// 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;

	}

	// ****************************************************************************    
	// * JFREECHART DEVELOPER GUIDE *    
	// * The JFreeChart Developer Guide, written by David Gilbert, is available *    
	// * to purchase from Object Refinery Limited: *    
	// * *    
	// * http://www.object-refinery.com/jfreechart/guide.html *    
	// * *    
	// * Sales are used to provide funding for the JFreeChart project - please *    
	// * support us so that we can continue developing free software. *    
	// ****************************************************************************    

	/**   
	 * Starting point for the demonstration application.   
	 *   
	 * @param args ignored.   
	 */
	public static void main(final String[] args)
	{

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

	}

}

 
 

  • 大小: 26.5 KB
分享到:
评论

相关推荐

    JFreeChart所有图形实例(Demo和源码).rar

    - **线图示例**:包括简单线图、折线图和多系列线图的实现。 - **散点图示例**:如何添加点的形状、大小和颜色,以及自定义坐标轴范围。 - **甘特图示例**:展示了如何创建带有任务和依赖关系的甘特图。 4. **...

    JFreeChart生成报表Demo案例

    JFreeChart是一款强大的Java库,专门用于生成高质量的图表,如饼图、柱状图、折线图等,广泛应用于数据分析、报告生成以及各种可视化应用中。本示例是关于如何使用JFreeChart在Java环境中创建3D效果的报表的实践教程...

    jfreeChart报表小demo

    JFreeChart支持多种图表类型,包括折线图、柱状图、饼图、散点图、甘特图等,可以用于报表、演示文稿、Web应用等场景。在本demo中,开发者将展示如何使用JFreeChart来创建这三种最常见的图表类型:饼图、柱状图和...

    JFreeChart_GUI_Demo

    `JFreeChart` 是一个开源的Java库,用于创建高质量的图表,包括柱状图、折线图、饼图等,广泛应用于数据分析和可视化项目。`JFreeChart_GUI_Demo` 提供了一系列示例代码,帮助开发者了解如何在Java图形用户界面(GUI...

    JFreeChartDemo案例的源码

    2. **图表类型**:JFreeChart 支持多种图表类型,包括条形图(Bar Chart)、饼图(Pie Chart)、线形图(Line Chart)、面积图(Area Chart)、折线图(XY Line Chart)、散点图(Scatter Plot)等,适用于不同的...

    jfreechart-1.0.19-demo.src

    JFreeChart是一个流行的开源Java库,用于创建各种图表,如折线图、柱状图、饼图、散点图等。它提供了丰富的功能,使得开发者能够在Java应用程序中轻松地生成高质量的图形。这个“jfreechart-1.0.19-demo.src”压缩包...

    jfreechart-1.0.6-demo源码

    JFreeChart是一款流行的开源Java图表库,它提供了一系列丰富的图表类型,包括折线图、柱状图、饼图、散点图等,广泛应用于数据分析、报表生成以及GUI应用的可视化展示。在本文中,我们将深入探讨"jfreechart-1.0.6-...

    jfreechart实例教程+笔记+流程图

    JFreeChart 是一个功能强大的 Java 图表库,它为开发者提供了创建各种高质量图表的能力,包括折线图、柱状图、饼图、散点图、甘特图等。这个教程将帮助你深入理解和使用 JFreeChart,结合学习笔记、流程图和示例代码...

    JFreeChart Demo源代码

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

    jfreeChart---DEMO

    在本示例中,我们关注的是"jfreechart的折线图demo",它演示了如何通过Servlet封装数据,并在JSP页面上进行展示。 **1. JFreeChart基础知识** JFreeChart是基于Java的图形库,适用于各种项目,尤其适合那些需要在...

    jfreechart_demo.zip

    JFreeChart是一个强大的Java图表库,它允许程序员创建多种类型的高质量图表,如柱状图、饼图、线图、散点图以及甘特图等。这个"jfreechart_demo.zip"压缩包包含了作者对JFreeChart的学习和应用的示例代码,是深入...

    JfreeChart各种图形案例

    **JFreeChart是一种广泛使用的Java库,用于创建各种高质量的2D图表,如折线图、柱状图、饼图、散点图等。在"JfreeChart各种图形案例"这个资源中,包含了多种JFreeChart图形的示例,旨在帮助开发者直观地理解如何在...

    jfreechartdemo很全的例子

    JFreeChart 是一个流行的 Java 图表库,它提供了一系列丰富的图表类型,包括折线图、柱状图、饼图、散点图等,广泛应用于数据分析、报表生成以及可视化应用开发中。本篇文章将深入探讨 JFreeChart 的核心功能,通过...

    JFreeChart 官方demo.7z

    - `LineChartDemo1.java`:介绍线图的创建,包括折线图和曲线图。 - `ScatterPlotDemo1.java`:展示散点图的制作,可以用于显示两个变量之间的关系。 - `GanttChartDemo1.java`:提供甘特图的实现,用于项目管理或...

    java--JFreeChartDemo

    Java中的JFreeChart库是一个强大的工具,用于生成各种图表,如折线图、柱状图、饼图、散点图等。它为开发者提供了一种简单的方法来在Java应用程序、Swing组件或Web应用程序中创建高质量的图表。在这个"java--...

    JFreeChart所有图表的实例代码

    JFreeChart 是一个广泛使用的 Java 图形库,它允许开发者创建各种高质量的图表,包括折线图、柱状图、饼图、散点图等。在Java应用中,尤其是在数据可视化方面,JFreeChart 提供了丰富的功能和自定义选项。本篇将深入...

    Jfreechart--demo

    - **多种图表类型**:JFreeChart支持多种常见的图表类型,如条形图、饼图、折线图、面积图、散点图等,同时还可以创建组合图表,以满足不同场景下的需求。 - **自定义选项**:用户可以通过调整颜色、字体、标签、...

    jfreechartdemo.rar

    JFreeChart是一款强大的Java图表库,它为开发者提供了创建各种高质量图表的能力,包括折线图、柱状图、饼图、散点图等,广泛应用于数据分析、报表制作以及可视化界面的设计。在"jfreechartdemo.rar"这个压缩包中,...

    jfreechart_demo

    首先,JFreeChart的核心功能在于它能够生成高质量的2D图表,支持多种图表类型,如折线图、柱状图、饼图、面积图、甘特图、雷达图等。这些图表可以用于数据分析、报告制作、可视化展示等多个场景,为开发者提供了丰富...

    jfreechart-1.0.13-demo.src.zip

    JFreeChart 是一个广泛使用的开源Java库,用于创建高质量的图表,包括折线图、柱状图、饼图、散点图等。标题中的"jfreechart-1.0.13-demo.src.zip"是一个包含JFreeChart 1.0.13版本示例源代码的压缩包,它为开发者...

Global site tag (gtag.js) - Google Analytics