利用JFreeChart生成多轴图表(7) (转自 JSP开发技术大全)

14.7 利用JFreeChart生成多轴图表

通过JFreeChart插件还可以生成拥有多个坐标轴的图表,简称多轴图表。在生成多轴图表时,必须通过绘图区对象,因为在JFreeChart中各种风格的统计图均是绘制在绘图区对象上的,一个绘图区对象可以接收多个坐标轴对象、数据集对象和绘图风格对象,向单轴图表中添加附加轴的基本步骤如下。

(1)创建一个坐标轴对象并添加到绘图区对象当中。

(2)将相应的绘图数据集对象添加到绘图区对象当中。

(3)通过绘图区对象将相应的绘图数据集对象和对应的坐标轴对象建立映射关系。

(4)创建一个用来描述绘图数据的图形对象,并添加到绘图区对象当中。

下面是一个多轴图表之双轴图表的典型应用,下面将以此讲解多轴图表的具体生成方法。

 实例位置:光盘\mingrisoft\14\dxyy\01

该典型应用生成的多轴图表的效果如图14.10所示。

图14.10 利用JFreeChart生成多轴图表

因为在绘制多轴图表时,需要用到绘图区对象,所以在这里首先获得绘图区对象,代码如下:

CategoryPlot plot = chart.getCategoryPlot();

下面创建一个坐标轴对象,并添加到绘图区对象当中,代码如下:

ValueAxis axis1 = new NumberAxis("季度销售汇总    单位:万册");

plot.setRangeAxis(1, axis1);

在创建坐标轴对象时,入口参数为坐标轴的名称。在通过绘图区对象的setRangeAxis()方法将坐标轴对象添加到绘图区时,需要提供两个入口参数,第一个为坐标轴的索引位置,要求为正整数,绘图区默认的坐标轴索引为“0”,所以这里将其设为“1”;第二个为坐标轴对象。

下面的代码负责封装绘图数据集,并将其添加到绘图区对象当中,代码如下:

DefaultCategoryDataset dataset1 = new DefaultCategoryDataset();

// 封装绘图数据集的具体代码略

plot.setDataset(1, dataset1);

在通过绘图区对象的setDataset()方法将绘图数据集对象添加到绘图区时,同样需要提供两个入口参数,第一个为数据集的索引位置,要求为正整数,绘图区默认的绘图数据集索引为“0”,所以这里将其设为“1”;第二个为绘图数据集对象。

下面需要将绘图数据集对象和欲采用的坐标轴对象建立映射关系,方法如下:

plot.mapDatasetToRangeAxis(1, 1);

在通过绘图区对象的mapDatasetToRangeAxis()方法将绘图数据集对象和坐标轴对象建立映射关系时,同样需要提供两个入口参数,第一个为数据集的索引位置;第二个为坐标轴的索引位置。

   注意:并不是索引位置相同的绘图数据集和坐标轴是一一对应的,如果不为索引位置为非0的绘图数据集映射对应的坐标轴,JFreeChart默认采用索引位置为0的坐标轴,所以,也可以利用一个坐标轴来描述图形对象的数据信息。

最后,创建一个用来描述绘图数据的图形对象,并添加到绘图区对象当中,代码如下:

CategoryItemRenderer renderer1 = new LineAndShapeRenderer();

renderer1.setSeriesPaint(0, Color.BLACK);

plot.setRenderer(1, renderer1);

   注意:用来描述绘图数据的图形对象和绘图数据集的索引是一一对应的。

利用JFreeChart生成多轴图表(7) (转自 JSP开发技术大全)的更多相关文章

  1. 利用JFreeChart生成组合图表 (8) (转自 JSP开发技术大全)

    利用JFreeChart生成组合图表 (8) (转自 JSP开发技术大全) 14.8 利用JFreeChart生成组合图表  实例位置:光盘\mingrisoft\14\dxyy\02 通过JFree ...

  2. 利用JFreeChart生成区域图 (5) (转自 JSP开发技术大全)

    利用JFreeChart生成区域图 (5) (转自 JSP开发技术大全) 14.5 利用JFreeChart生成区域图 通过JFreeChart插件只能生成普通效果的区域图,利用工厂类ChartFac ...

  3. 利用JFreeChart生成折线图 (4) (转自 JSP开发技术大全)

    利用JFreeChart生成折线图 (4) (转自 JSP开发技术大全) 14.4 利用JFreeChart生成折线图 通过JFreeChart插件,既可以生成普通效果的折线图,也可以生成3D效果的折 ...

  4. 利用JFreeChart生成时序图(6) (转自 JSP开发技术大全)

    利用JFreeChart生成时序图(6) (转自 JSP开发技术大全) 14.6 利用JFreeChart生成时序图 通过JFreeChart插件只能生成普通效果的时序图,利用工厂类ChartFact ...

  5. JFreeChart生成柱形图(2) (转自 JSP开发技术大全)

    JFreeChart生成柱形图(2) (转自 JSP开发技术大全) 14.2 利用JFreeChart生成柱形图14.2.1 利用DefaultCategoryDataset数据集绘制柱形图 通过JF ...

  6. JFreeChart生成饼形图(3) (转自 JSP开发技术大全)

    JFreeChart生成饼形图(3) (转自 JSP开发技术大全) 14.3 利用JFreeChart生成饼形图 通过JFreeChart插件,即可以生成普通效果的饼形图,也可以生成3D效果的饼形图: ...

  7. JFreeChart生成饼形图(3)11 (转自 JSP开发技术大全)

    FreeChart生成饼形图(3) (转自 JSP开发技术大全) 14.3 利用JFreeChart生成饼形图 通过JFreeChart插件,即可以生成普通效果的饼形图,也可以生成3D效果的饼形图:如 ...

  8. JFreeChart基础(1) (转自 JSP开发技术大全)

    JFreeChart基础(1) (转自 JSP开发技术大全) JFreeChart是一个Java开源项目,是一款优秀的Java图表生成插件,它提供了在Java Application.Servlet和 ...

  9. 利用JFreeChart生成简单柱状图(Java)

    package barchartdemo1; import <a href="http://lib.csdn.net/base/javaee" class='replace_ ...

随机推荐

  1. BZOJ 1711 吃饭dining/Luogu P1402 酒店之王 拆点+最大流流匹配

    题意: (吃饭dining)有F种食物和D种饮料,每种食物或饮料只能供一头牛享用,且每头牛只享用一种食物和一种饮料.现在有n头牛,每头牛都有自己喜欢的食物种类列表和饮料种类列表,问最多能使几头牛同时享 ...

  2. python在linux下的使用

    1.查看python(解释器)的版本(什么版本的解释器支持哪一版版的语言标准) 一般在linux上已经预装了python,只要在Bash Shell中输入python,即可看到如下版本信息: 按Ctr ...

  3. 并不简单的Integer

    Integer是一个看着挺简单的,其实还是有点不一样,Integer是一个int的包装类,它是可以起到缓存作用的,在java基础里说过它的范围是(-128-127)在这个返回是有缓存的,不会创建新的I ...

  4. kvm:日常使用

    常用命令 创建新镜像:qemu-img create -f qcow2 /var/lib/libvirt/images/$1.img 100G 创建新镜像:qemu-img create -f qco ...

  5. js 循环 js创建数组

    循环 for (var i = 0; i < myArray.length; i++) { console.log(myArray[i]); }; for (var arr in myArray ...

  6. HDU1024 多段最大和 DP

    题目大意: 在n个数,求不重复的m段中的数据总和的最大值 令dp[i][j]表示将前j个数分成 i 段时得到的最大值(必取到第 j 个数) 状态转移可列为 dp[i][j]=Max(dp[i][j-1 ...

  7. MTK平台 GPU 相关知识

    一.什么是Render script,以及mtk平台GPU support情况 [DESCRIPTION] 1.什么是RenderScript ? 2.RenderScript 干什么? 3.MTK平 ...

  8. SQLAlchemy(2):多表操作 & 连接方式及原生SQL

    一对多:ForeignKey multitb_models.py import datetime from sqlalchemy import create_engine # 引入 创建引擎 from ...

  9. Codeforces700C. Break Up

    n<=1000,m<=30000的图,问割掉边权和尽量小的0.1或2条边使S和T不连通,输出割了哪些边,无解-1. 道理是很好懂的,先随便找S到T的一条路径,找不到输出0,找到的话这条路上 ...

  10. 深入理解hadoop(一)

    hadoop 前世今生  hadoop最早起源于开源收缩引擎nutch,由dong cutting 贡献,但由于nutch最初的设计不能解决数10亿级别的文件存储和索引而遇到了严重的可扩展性问题,直到 ...