`

利用JFreeChart生成折线图方法说解

阅读更多

14.4  利用JFreeChart生成折线图

通过JFreeChart插件,既可以生成普通效果的折线图,也可以生成3D效果的折线图。如果想生成普通效果的折线图,需要通过工厂类ChartFactory的createLineChart()方法获得JFreeChart类的实例;如果想生成3D效果的折线图,需要通过工厂类ChartFactory的createLineChart3D()方法获得JFreeChart类的实例。这两个方法的入口参数是完全相同的,各个入口参数的类型及功能请参见14.2.1节的表14.2。

可以分别通过绘图区对象CategoryPlot的getDomainAxis()方法和getRangeAxis()方法,获得横轴对象和纵轴对象,通过得到的轴对象可以设置绘制坐标轴的相关属性,常用方法及实现功能如表14.4所示。

表14.4                                        设置坐标轴绘制属性的部分通用方法

 

 

通 用 方 法

 

实 现 功 能

 

setAxisLineStroke(Stroke stroke)

 

通过该方法可以设置轴线的粗细

 

setAxisLinePaint(Paint paint)

 

通过该方法可以设置轴线的颜色

 

setLabelFont(Font font)

 

通过该方法可以设置坐标轴标题的字体

 

setLabelPaint(Paint paint)

 

通过该方法可以设置坐标轴标题的颜色

 

纵轴对象还提供了设置坐标最大值的方法setUpperBound(double max),在默认情况下将最大值控制在能够

正常绘制统计图的范围内。

通过java.awt.BasicStroke类可以绘制出各种各样的线段,大体分为实线段和虚线段,可控的绘制条件包括线条的宽度、线段端点的风格、折线段的折点风格、虚线段的绘制风格和虚线段的绘制偏移量,BasicStroke类提供的所有构造方法如表14.5所示。

表14.5                                           BasicStroke类提供的所有构造方法

 

 

构 造 方 法

 

使 用 说 明

 

BasicStroke()

 

创建一个实线对象,各控制条件均采用默认值,宽度为1.0,端点风格为CAP_SQUARE,折点风格为JOIN_MITER,折点控制值为10.0

 

BasicStroke(float width)

 

创建一个指定宽度的实线对象,其他参数仍采用默认值

 

BasicStroke(float width, int cap, int join)

 

创建一个指定宽度、指定端点风格和指定折点风格的实线对象,折点控制值仍采用默认值10.0

 

BasicStroke(float width, int cap, int join, float miterlimit)

 

创建一个指定宽度、指定端点风格、指定折点风格和指定折点控制值的实线对象

 

BasicStroke(float width, int cap, int join, float miterlimit, float dash[], float dash_phase)

 

通过该构造方法,既可以创建实线对象,又可以创建虚线对象,当将参数dash设为null时,创建的即为实线对象,如果将其设为float型数组,创建的则为虚线对象,最后一个参数用来设置开始绘制虚线的偏移量

 

线段端点的修饰风格有3种,分别由3个常量表示,具体信息如表14.6所示。

表14.6                                                    线段端点修饰风格简介

 

 

常 量 名 称

 

常  量  值

 

修 饰 办 法

 

BasicStroke.CAP_BUTT

 

0

 

对线段端点不加任何修饰

 

BasicStroke.CAP_ROUND

 

1

 

在线段端点加半圆进行修饰,半圆的直径为线段的宽度

 

BasicStroke.CAP_SQUARE

 

2

 

在线段端点加矩形进行修饰,矩形的宽度为线段宽度的一半,矩形的高度为线段的宽度

 

线段折点的修饰风格同样有3种,也由3个常量表示,具体信息如表14.7所示。

表14.7                                                    线段折点修饰风格简介

 

 

常 量 名 称

 

常  量  值

 

修 饰 办 法

 

BasicStroke.JOIN_MITER

 

0

 

对线段折点不加任何修饰

 

BasicStroke.JOIN_ROUND

 

1

 

在折线段的两端加半圆进行修饰,半圆的直径为线段的宽度

 

BasicStroke.JOIN_BEVEL

 

2

 

将组成折点的两条线段的外侧延长至相交,然后填充被包的区域

 

入口参数dash用来定义虚线,为float型数组,当dash数组由偶数个元素组成时,索引值为偶数的元素值代表虚线段的长度,索引值为奇数的元素值代表两个虚线段之间的空白部分的长度,需要注意的是,数组的索引值是从0开始的;当数组中只有一个元素时,例如dash={6},等同于dash={6,6}。

   注意:建议不要为dash数组设定奇数个元素,那样将无法把握虚线的绘制规律,为一个元素的情况除外。

入口参数dash_phase用来定义虚线开始绘制位置的偏移量。以dash={6}为例,如果dash_phase=0,则虚线正常绘制;如果dash_phase=3,则第一段短化线的长度为6-3,后面则正常绘制。

  示例14-04  编程类图书年销量折线图分析

下面来看一个绘制折线图的例子,该例绘制的折线图效果如图14.6和图14.7所示。

         

             图14.6  普通效果的折线图                             图14.7  3D效果的折线图

代码14-04  光盘位置:光盘\mingrisoft\14\sl\04

下面的代码负责定义折线的绘制风格,并将指定的图例用实线绘制,代码如下:

BasicStroke realLine = new BasicStroke(1.6f);

float dashes[] = { 8.0f };     // 定义虚线数组

BasicStroke brokenLine = new BasicStroke(1.6f,     // 线条粗细

      BasicStroke.CAP_ROUND,     // 端点风格

      BasicStroke.JOIN_ROUND,     // 折点风格

      8.f,     // 折点处理办法

      dashes,     // 虚线数组

      0.0f);     // 虚线偏移量

int special = 1;     // 定义利用需线绘制的图例

for (int i = 0; i < cutline.length; i++) {

   if (i == special) {

      renderer.setSeriesStroke(i, realLine);     // 利用实线绘制

   } else {

      renderer.setSeriesStroke(i, brokenLine);     // 利用虚线绘制

   }

}

下面的代码负责获得横轴对象,并设置相关的绘图属性,代码如下:

CategoryAxis domainAxis = plot.getDomainAxis();

domainAxis.setAxisLineStroke(new BasicStroke(1.6f));     // 设置轴线粗细

domainAxis.setAxisLinePaint(Color.BLACK);     // 设置轴线颜色

domainAxis.setCategoryLabelPositionOffset(5);     // 设置统计种类与轴线的颜色

domainAxis.setLabelFont(new Font("黑体", Font.BOLD, 16));     // 设置坐标轴标题字体

domainAxis.setLabelPaint(Color.BLACK);     // 设置坐标轴标题颜色

// 设置坐标轴标题旋转角度,这里并未旋转,目的是告诉读者这个方法

domainAxis.setCategoryLabelPositions(CategoryLabelPositions.STANDARD);

下面的代码负责获得纵轴对象,并设置相关的绘图属性,代码如下:

ValueAxis rangeAxis = plot.getRangeAxis();

rangeAxis.setAxisLineStroke(new BasicStroke(1.6f));     // 设置轴线粗细

rangeAxis.setAxisLinePaint(Color.BLACK);     // 设置轴线颜色

rangeAxis.setUpperBound(100.0f);     // 设置坐标最大值

rangeAxis.setTickMarkStroke(new BasicStroke(1.6f));     // 设置坐标标记大小

rangeAxis.setTickMarkPaint(Color.BLACK);     // 设置坐标标记颜色

rangeAxis.setLabelFont(new Font("黑体", Font.BOLD, 16));     // 设置坐标轴标题字体

rangeAxis.setLabelPaint(Color.BLACK);     // 设置坐标轴标题颜色

rangeAxis.setLabelAngle(Math.PI / 2);     // 设置坐标轴标题旋转角度

<!-- -->
分享到:
评论

相关推荐

    JSP利用JFreeChart生成折线图

    本教程将详细介绍如何在JSP中利用JFreeChart库来生成折线图。 首先,要使用JFreeChart,你需要在项目中引入相关的依赖。"标签"中提到的JFreeChart是这个过程的关键,它提供了丰富的API来创建图表。通常,你需要下载...

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

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

    jfreechart绘制折线图(平面和3D)

    JFreeChart是一款强大的Java图形库,它允许开发者创建多种类型的图表,包括折线图、柱状图、饼图、散点图等。...通过深入学习和实践,开发者可以利用JFreeChart轻松地在Java应用程序中生成美观且信息丰富的图表。

    jfreechart 漂亮的折线图

    利用jfreechart绘制的漂亮的折线图,实现双纵坐标,折线点标签还带箭头指示,非常直观,需要提前下载jfreechart.jar文件,否则我的类会报错,也即是要配置运行环境

    java里用JFreeChart画柱状图、折线图、雷达图

    在Java编程环境中,JFreeChart库是一个强大的工具,用于创建各种复杂的图表,包括柱状图、折线图和雷达图。这些图表对于数据可视化和数据分析非常有用,可以帮助开发者直观地展示大量信息。以下是对给定文件中每个...

    利用JFreechart 做折线图

    ### 使用JFreeChart绘制中文折线图 #### 一、简介与环境配置 JFreeChart是一款功能强大且灵活的Java图表库,它可以帮助开发者轻松创建各种图表,包括折线图、柱状图、饼图等。本文将详细介绍如何使用JFreeChart...

    Spring+JFreeChart 自动生成统计图

    JFreeChart是一个强大的Java库,能够创建多种类型的图表,包括折线图、柱状图、饼图、散点图等,非常适合用于报表和数据分析应用。在Spring框架中,我们可以利用其灵活的依赖注入和AOP(面向切面编程)特性,将图表...

    利用JFreeChart 实现柱状图,饼图,时序图,折线图等

    同样,你需要创建一个`XYDataset`,然后使用`JFreeChart.createLineChart()`方法生成折线图。在折线图中,数据点通过线条连接,可以直观地看出数据的变化趋势。 5. **实际操作步骤** 在JFreeChartTest项目中,通常...

    JFreeChart画折线实例

    在这个"JFreeChart画折线实例"中,我们将深入探讨如何利用JFreeChart库来创建折线图,并将其保存为本地文件。下面将详细讲解相关知识点。 首先,JFreeChart库的引入是通过在项目中添加其对应的依赖或jar包。如果你...

    jfreechart生成图片及导出pdf 、excel

    在这个“jfreechart生成图片及导出pdf、excel”的主题中,我们将深入探讨如何利用JFreeChart来生成这些图表,并将其导出为PDF和Excel格式。 1. **JFreeChart基本使用** JFreeChart库提供了多种图表类型,包括...

    java利用jfreechart绘制excel.pdf

    makeLineAndShapeChart 方法用于生成折线图,该方法中使用 JFreeChart 库来生成图表。该方法首先创建了一个 CategoryDataset 对象,然后使用 ChartFactory 工厂类来生成图表。 ### ChartFactory 工厂类 ...

    jfreechart jsp 结合 折线图

    当用户访问这个页面时,服务器端会执行上述代码,生成折线图并返回给客户端。 7. **MyEclipse工程配置** 在MyEclipse中,新建一个JSP文件,将上述代码片段放入,并确保正确引入JFreeChart的jar包。在Web项目结构中...

    web工程jFreeChart展示导出折线图

    在这个“web工程jFreeChart展示导出折线图”的项目中,我们将探讨如何在IDEA Maven环境下利用JFreeChart生成折线图并在前端展示,以及如何实现图表的导出功能。 ### 1. JFreeChart简介 JFreeChart是一个开源的Java...

    jfreechart折线图读取数据库数据的显示(mysql)

    本教程将详细讲解如何利用JFreeChart结合MySQL数据库来生成动态折线图,展示数据库中的数据。 首先,我们需要确保已经安装了JFreeChart库和MySQL的Java连接驱动(JDBC)。可以通过Maven或Gradle添加依赖,例如在...

    jFreeChart生成报表图片

    **jFreeChart:数据可视化利器** jFreeChart是一款强大的开源Java图表库,它允许开发者创建各种...通过"jFreeChart生成报表图片"项目,开发者可以快速上手,掌握如何利用jFreeChart创建出专业且美观的数据展示效果。

    jfreeChar 折线图+柱形图(混合图) +最新Jar包及例子

    在这个特定的案例中,我们关注的是如何利用JFreeChart来创建折线图和柱形图的混合图表,这种图表在数据可视化中非常常见,能够同时展示两个不同数据系列的趋势和比较。 首先,让我们深入了解一下JFreeChart的基本...

    JFreeChart生成图片并显示

    《JFreeChart生成图片并显示》 在Java开发中,我们常常需要生成各种图表来直观地展示数据,比如折线图、柱状图、饼图等。JFreeChart是一个强大的开源Java库,它提供了丰富的图表生成功能,可以满足开发者在各种应用...

    java折线图绘制程序

    总之,"java折线图绘制程序"是一个基于Java和可能的JFreeChart库的实用工具,用于快速、直观地生成折线图。通过这个程序,无论是开发者还是非开发者,都能方便地进行数据可视化,从而提升分析效率和结果的呈现质量。...

    java利用jfreechart绘制excel参考.pdf

    makeLineAndShapeChart() 方法用于生成折线图。在该方法中,首先需要创建一个 CategoryDataset 对象,然后将数据添加到该对象中。接着,使用 ChartFactory 创建一个折线图,最后使用 ChartUtilities 将图表保存到...

    java利用JFreeChart实现各类数据统计图柱形图饼图折线图.pdf

    Java 中可以使用 JFreeChart 库来实现各种数据统计图,如柱形图、饼图、折线图等。下面将详细介绍如何使用 JFreeChart 库实现数据统计图。 首先,需要添加三个第三方包到 Java 项目中,分别是 jfreechart-1.0.13....

Global site tag (gtag.js) - Google Analytics