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
分享到:
相关推荐
- **线图示例**:包括简单线图、折线图和多系列线图的实现。 - **散点图示例**:如何添加点的形状、大小和颜色,以及自定义坐标轴范围。 - **甘特图示例**:展示了如何创建带有任务和依赖关系的甘特图。 4. **...
JFreeChart是一款强大的Java库,专门用于生成高质量的图表,如饼图、柱状图、折线图等,广泛应用于数据分析、报告生成以及各种可视化应用中。本示例是关于如何使用JFreeChart在Java环境中创建3D效果的报表的实践教程...
JFreeChart支持多种图表类型,包括折线图、柱状图、饼图、散点图、甘特图等,可以用于报表、演示文稿、Web应用等场景。在本demo中,开发者将展示如何使用JFreeChart来创建这三种最常见的图表类型:饼图、柱状图和...
`JFreeChart` 是一个开源的Java库,用于创建高质量的图表,包括柱状图、折线图、饼图等,广泛应用于数据分析和可视化项目。`JFreeChart_GUI_Demo` 提供了一系列示例代码,帮助开发者了解如何在Java图形用户界面(GUI...
2. **图表类型**:JFreeChart 支持多种图表类型,包括条形图(Bar Chart)、饼图(Pie Chart)、线形图(Line Chart)、面积图(Area Chart)、折线图(XY Line Chart)、散点图(Scatter Plot)等,适用于不同的...
JFreeChart是一个流行的开源Java库,用于创建各种图表,如折线图、柱状图、饼图、散点图等。它提供了丰富的功能,使得开发者能够在Java应用程序中轻松地生成高质量的图形。这个“jfreechart-1.0.19-demo.src”压缩包...
JFreeChart是一款流行的开源Java图表库,它提供了一系列丰富的图表类型,包括折线图、柱状图、饼图、散点图等,广泛应用于数据分析、报表生成以及GUI应用的可视化展示。在本文中,我们将深入探讨"jfreechart-1.0.6-...
JFreeChart 是一个功能强大的 Java 图表库,它为开发者提供了创建各种高质量图表的能力,包括折线图、柱状图、饼图、散点图、甘特图等。这个教程将帮助你深入理解和使用 JFreeChart,结合学习笔记、流程图和示例代码...
1. **图表类型**:JFreeChart支持多种图表类型,包括CategoryChart(分类图表,如柱状图和折线图)、PieChart(饼图)、XYChart(XY坐标系图表,如散点图和线图)、TimeSeriesChart(时间序列图表)等。通过Demo,你...
在本示例中,我们关注的是"jfreechart的折线图demo",它演示了如何通过Servlet封装数据,并在JSP页面上进行展示。 **1. JFreeChart基础知识** JFreeChart是基于Java的图形库,适用于各种项目,尤其适合那些需要在...
JFreeChart是一个强大的Java图表库,它允许程序员创建多种类型的高质量图表,如柱状图、饼图、线图、散点图以及甘特图等。这个"jfreechart_demo.zip"压缩包包含了作者对JFreeChart的学习和应用的示例代码,是深入...
**JFreeChart是一种广泛使用的Java库,用于创建各种高质量的2D图表,如折线图、柱状图、饼图、散点图等。在"JfreeChart各种图形案例"这个资源中,包含了多种JFreeChart图形的示例,旨在帮助开发者直观地理解如何在...
JFreeChart 是一个流行的 Java 图表库,它提供了一系列丰富的图表类型,包括折线图、柱状图、饼图、散点图等,广泛应用于数据分析、报表生成以及可视化应用开发中。本篇文章将深入探讨 JFreeChart 的核心功能,通过...
- `LineChartDemo1.java`:介绍线图的创建,包括折线图和曲线图。 - `ScatterPlotDemo1.java`:展示散点图的制作,可以用于显示两个变量之间的关系。 - `GanttChartDemo1.java`:提供甘特图的实现,用于项目管理或...
Java中的JFreeChart库是一个强大的工具,用于生成各种图表,如折线图、柱状图、饼图、散点图等。它为开发者提供了一种简单的方法来在Java应用程序、Swing组件或Web应用程序中创建高质量的图表。在这个"java--...
JFreeChart 是一个广泛使用的 Java 图形库,它允许开发者创建各种高质量的图表,包括折线图、柱状图、饼图、散点图等。在Java应用中,尤其是在数据可视化方面,JFreeChart 提供了丰富的功能和自定义选项。本篇将深入...
- **多种图表类型**:JFreeChart支持多种常见的图表类型,如条形图、饼图、折线图、面积图、散点图等,同时还可以创建组合图表,以满足不同场景下的需求。 - **自定义选项**:用户可以通过调整颜色、字体、标签、...
JFreeChart是一款强大的Java图表库,它为开发者提供了创建各种高质量图表的能力,包括折线图、柱状图、饼图、散点图等,广泛应用于数据分析、报表制作以及可视化界面的设计。在"jfreechartdemo.rar"这个压缩包中,...
首先,JFreeChart的核心功能在于它能够生成高质量的2D图表,支持多种图表类型,如折线图、柱状图、饼图、面积图、甘特图、雷达图等。这些图表可以用于数据分析、报告制作、可视化展示等多个场景,为开发者提供了丰富...
JFreeChart 是一个广泛使用的开源Java库,用于创建高质量的图表,包括折线图、柱状图、饼图、散点图等。标题中的"jfreechart-1.0.13-demo.src.zip"是一个包含JFreeChart 1.0.13版本示例源代码的压缩包,它为开发者...