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
分享到:
相关推荐
《使用JFreeChart生成折线图、饼图、柱状图和堆栈柱状图》 JFreeChart是一款强大的开源Java图表库,它允许开发者在应用程序、报告或网页中生成各种高质量的图表,包括折线图、饼图、柱状图和堆栈柱状图等。这篇文档...
标题中提到的“jfreechart生成折线图、饼图、柱状图、堆栈柱状图”是指使用Java的一个开源图形库JFreeChart来创建不同类型的统计图表。JFreeChart是一个功能全面、成熟的Java图表库,广泛应用于各种应用程序中进行...
Java中的JFreeChart库是一个强大的工具,用于生成各种类型的图表,包括柱状图、饼状图和折线图。在本教程中,我们将深入探讨如何使用JFreeChart创建这些图表,以及如何用随机生成的数据作为数据源。 首先,...
jfreechart是一款基于Java的开源图表绘制库,它能够帮助开发者轻松地在应用程序中生成各种图表,包括折线图、饼图、柱状图等。它的主要优势在于功能强大、配置灵活,并且支持导出多种格式的图表图像。 #### 二、...
JFreeChart是一款强大的Java图表库,它允许开发者在应用程序、Swing组件或Web应用中创建各种图表,如柱状图、饼图、折线图等。这个库支持丰富的定制选项,使得图表可以按照用户需求进行个性化设计。在这个...
这个项目,"java 生成网页图片Web源代码",显然关注的就是如何使用Java来创建和处理图片,特别是在Web环境中的应用。以下是相关的知识点详解: 1. **Java图像处理库**:Java提供了内置的`java.awt`和`javax.imageio...
JFreeChart是一款强大的Java图表库,它允许开发者创建多种类型的图表,包括折线图、柱状图、饼图、散点图等。在本场景中,我们关注的是如何使用JFreeChart来实现实时更新的折线图。下面将详细介绍这个过程。 首先,...
在提供的`src`目录下,可能包含了项目的源代码,包括JFreeChart的使用示例。`WEB-INF`目录是标准的Web应用结构的一部分,通常包含`web.xml`配置文件和其他资源。 总的来说,JFreeChart是一个强大且灵活的Java图表库...
总之,JFreeChart 的开发者指南源代码是一个深入了解图表生成和定制的绝佳资源。通过深入学习和实践,你不仅可以掌握 JFreeChart 的基本用法,还能提升你的 Java 图形编程能力,为你的项目提供强大的可视化支持。
5. **使用方法**:在jFreeChartWeb项目中,开发者可以通过阅读源代码学习如何创建和配置这些图表。通常,需要先创建一个图表对象,然后设置所需的属性(如标题、数据集、颜色等),最后渲染成图像。对于Web应用,...
总的来说,"struts2+jfreeChartStruts简单生成折线图"项目展示了如何利用Struts2的控制层和JFreeChart的视图层,实现一个简单的Web应用程序,动态生成折线图。这种技术结合可以有效地提高开发效率,同时提供丰富的...
1. **图表类型**:JFreeChart支持多种图表类型,包括CategoryChart(分类图表,如柱状图和折线图)、PieChart(饼图)、XYChart(XY坐标系图表,如散点图和线图)、TimeSeriesChart(时间序列图表)等。通过Demo,你...
- Java源代码,展示了如何使用Freemarker和JFreechart进行操作。 - 图表生成的临时图像文件,用于插入到Word文档中。 - 最终生成的Word文档示例。 总的来说,这个示例提供了使用Freemarker和JFreechart生成带有动态...
4. **绘图框架**:Demo源代码中包含了如何使用ChartFactory类来快速生成标准图表,以及如何使用ChartBuilder类进行更高级的定制。这为我们提供了快速入门和深入探索的路径。 5. **颜色和样式**:JFreeChart允许...
JFreeChart是一款强大的Java图表库,它允许开发者创建多种类型的2D和3D图表,包括折线图、柱状图、饼状图、散点图等,并且支持自定义样式和颜色,使得数据可视化变得更加直观和生动。在这个特定的场景中,我们将关注...
JFreeChart库广泛应用于数据分析、报告生成、科学图表、商业智能等领域,它的强大之处在于其灵活性和多样性,可以生成饼图、柱状图、折线图、散点图、甘特图等多种图表类型。源代码示例通常包括了各种图表类型的创建...
JFreeChart是一个强大的Java图表库,它支持生成各种类型的图表,包括柱状图、折线图、饼图、散点图等。JFreeChart通过API提供了丰富的自定义选项,可以调整颜色、样式、标签等,以满足不同场景的需求。在Web应用中,...
这个“jfreechart生成报表图片.zip”压缩包包含了一组资源,可以帮助你快速创建各种类型的图表,如柱状图、饼图、折线图等,非常适合用于数据可视化。 1. **JFreeChart库介绍**: JFreeChart是开源的Java库,它...
JFreeChart是一个强大的Java库,专门用于生成各种类型的统计图表,包括折线图、柱状图、饼图、散点图等。在“Spring+Struts+JFreeChart”项目中,JFreeChart是负责实际数据可视化的部分。它可以从数据库或其他数据源...
JFreeChart是一款免费且开源的Java图表库,它提供了多种类型的图表绘制功能,如饼图、条形图、折线图等。JFreeChart适用于各种Java应用程序中,包括但不限于桌面应用、Web应用以及移动应用。它不仅能够生成高质量的...