利用JFreeChart生成折线图_第1页
利用JFreeChart生成折线图_第2页
利用JFreeChart生成折线图_第3页
利用JFreeChart生成折线图_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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

2、,获得横轴对象和纵轴对象,通过得到的轴对象可以设置绘制坐标轴的相关属性,常用方法及实现功能如表14.4所示。表14.4                                        设置坐标轴绘

3、制属性的部分通用方法  通 用 方 法 实 现 功 能 setAxisLineStroke(Stroke stroke) 通过该方法可以设置轴线的粗细 setAxisLinePaint(Paint paint) 通过该方法可以设置轴线的颜色 setLabelFont(Font font) 通过该方法可以设置坐标轴标题的字体 setLabelPaint(Paint paint) 通过该方法可以设置坐标轴标题的颜色 纵轴对象还提供了设置坐标最大值的方法setUpperBound(

4、double max),在默认情况下将最大值控制在能够正常绘制统计图的范围内。表14.5                                           Bas

5、icStroke类提供的所有构造方法  构 造 方 法 使 用 说 明 BasicStroke() 创建一个实线对象,各控制条件均采用默认值,宽度为1.0,端点风格为CAP_SQUARE,折点风格为JOIN_MITER,折点控制值为10.0 BasicStroke(float width) 创建一个指定宽度的实线对象,其他参数仍采用默认值 BasicStroke(float width, int cap, int join) 创建一个指定宽度、指定端点风格和指定折点风格的实线对象,折点控制值仍采用默认值1

6、0.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型数组,创建的则为虚线对象,最后一个参数用

7、来设置开始绘制虚线的偏移量 线段端点的修饰风格有3种,分别由3个常量表示,具体信息如表14.6所示。表14.6                                        

8、            线段端点修饰风格简介  常 量 名 称 常  量  值 修 饰 办 法 BasicStroke.CAP_BUTT 0 对线段端点不加任何修饰 BasicStroke.CAP_ROUND 1 在线段端点加半圆进行修饰,半圆的直径为线段的宽度 BasicStroke.CAP_SQUARE 2 在线段端点加矩形进行修饰,

9、矩形的宽度为线段宽度的一半,矩形的高度为线段的宽度 线段折点的修饰风格同样有3种,也由3个常量表示,具体信息如表14.7所示。表14.7                                      

10、;              线段折点修饰风格简介  常 量 名 称 常  量  值 修 饰 办 法 BasicStroke.JOIN_MITER 0 对线段折点不加任何修饰 BasicStroke.JOIN_ROUND 1 在折线段的两端加半圆进行修饰,半圆的直径为线段的宽度 BasicStroke.JOIN_BEVEL 2&

11、#160;将组成折点的两条线段的外侧延长至相交,然后填充被包的区域 入口参数dash用来定义虚线,为float型数组,当dash数组由偶数个元素组成时,索引值为偶数的元素值代表虚线段的长度,索引值为奇数的元素值代表两个虚线段之间的空白部分的长度,需要注意的是,数组的索引值是从0开始的;当数组中只有一个元素时,例如dash=6,等同于dash=6,6。   注意:建议不要为dash数组设定奇数个元素,那样将无法把握虚线的绘制规律,为一个元素的情况除外。入口参数dash_phase用来定义虚线开始绘制位置的偏移量。以dash=6为例,如果dash_phase=0,则虚

12、线正常绘制;如果dash_phase=3,则第一段短化线的长度为6-3,后面则正常绘制。  示例14-04  编程类图书年销量折线图分析                      图14.6  普通效果的折线图              &

13、#160;              图14.7  3D效果的折线图代码14-04  光盘位置:光盘mingrisoft14sl04下面的代码负责定义折线的绘制风格,并将指定的图例用实线绘制,代码如下:BasicStroke realLine = new BasicStroke(1.6f);float dashes = 8.0f ;     / 定义虚线数组BasicStroke brokenLi

14、ne = new BasicStroke(1.6f,     / 线条粗细      BasicStroke.CAP_ROUND,     / 端点风格      BasicStroke.JOIN_ROUND,     / 折点风格      8.f,     / 折点处理办法 

15、     dashes,     / 虚线数组      0.0f);     / 虚线偏移量int special = 1;     / 定义利用需线绘制的图例for (int i = 0; i < cutline.length; i+)    if (i = special)       renderer.s

16、etSeriesStroke(i, realLine);     / 利用实线绘制   else       renderer.setSeriesStroke(i, brokenLine);     / 利用虚线绘制   下面的代码负责获得横轴对象,并设置相关的绘图属性,代码如下:CategoryAxis domainAxis = plot.getDomainAxis();domainAxis.setAxisLineStrok

17、e(new BasicStroke(1.6f);     / 设置轴线粗细domainAxis.setAxisLinePaint(Color.BLACK);     / 设置轴线颜色domainAxis.setCategoryLabelPositionOffset(5);     / 设置统计种类与轴线的颜色domainAxis.setLabelFont(new Font("黑体", Font.BOLD, 16);   

18、60; / 设置坐标轴标题字体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.setTickMarkPa

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论