利用jfreechart生成折线图

上传人:mg****85 文档编号:36786685 上传时间:2018-04-02 格式:DOC 页数:11 大小:142.50KB
返回 下载 相关 举报
利用jfreechart生成折线图_第1页
第1页 / 共11页
利用jfreechart生成折线图_第2页
第2页 / 共11页
利用jfreechart生成折线图_第3页
第3页 / 共11页
利用jfreechart生成折线图_第4页
第4页 / 共11页
利用jfreechart生成折线图_第5页
第5页 / 共11页
点击查看更多>>
资源描述

《利用jfreechart生成折线图》由会员分享,可在线阅读,更多相关《利用jfreechart生成折线图(11页珍藏版)》请在金锄头文库上搜索。

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

2、 CategoryPlot 的 getDomainAxis()方法和 getRangeAxis()方法,获 得横轴对象和纵轴对象,通过得到的轴对象可以设置绘制坐标轴的相关属性,常用方法及 实现功能如表 14.4 所示。 表 14.4 设置坐标轴绘制属性的部分通用方法通 用 方 法实 现 功 能setAxisLineStroke(Stroke stroke)通过该方法可以设置轴线的粗细setAxisLinePaint(Paint paint)通过该方法可以设置轴线的颜色setLabelFont(Font font)通过该方法可以设置坐标轴标题的字体setLabelPaint(Paint pain

3、t)通过该方法可以设置坐标轴标题的颜色纵轴对象还提供了设置坐标最大值的方法 setUpperBound(double max),在默认情况下将最 大值控制在能够正常绘制统计图的范围内。 通过 java.awt.BasicStroke 类可以绘制出各种各样的线段,大体分为实线段和虚线段,可控 的绘制条件包括线条的宽度、线段端点的风格、折线段的折点风格、虚线段的绘制风格和 虚线段的绘制偏移量,BasicStroke 类提供的所有构造方法如表 14.5 所示。 表 14.5 BasicStroke 类提供的所有构造方法构 造 方 法使 用 说 明BasicStroke()创建一个实线对象,各控制条件

4、均采用默认值,宽度宽度 为 1.0,端点风格端点风格为 CAP_SQUARE,折点风格折点风格为 JOIN_MITER,折点控制值折点控制值为 10.0BasicStroke(float width)创建一个指定宽度的实线对象,其他参数仍采用默认 值BasicStroke(float width, int cap, int join)创建一个指定宽度、指定端点风格和指定折点风格的 实线对象,折点控制值仍采用默认值 10.0BasicStroke(float width, int cap, int 创建一个指定宽度、指定端点风格、指定折点风格和join, float miterlimit)指定折

5、点控制值的实线对象BasicStroke(float width, int cap, int join, float miterlimit, float dash, float dash_phase)通过该构造方法,既可以创建实线对象,又可以创建 虚线对象,当将参数 dash 设为 null 时,创建的即为实 线对象,如果将其设为 float 型数组,创建的则为虚线 对象,最后一个参数用来设置开始绘制虚线的偏移量线段端点的修饰风格有 3 种,分别由 3 个常量表示,具体信息如表 14.6 所示。 表 14.6 线段端点修饰风格简介常 量 名 称常 量 值修 饰 办 法BasicStroke.C

6、AP_BUTT0对线段端点不加任何修饰BasicStroke.CAP_ROUND1在线段端点加半圆进行修饰,半圆的直径为线段 的宽度BasicStroke.CAP_SQUARE2在线段端点加矩形进行修饰,矩形的宽度为线段 宽度的一半,矩形的高度为线段的宽度线段折点的修饰风格同样有 3 种,也由 3 个常量表示,具体信息如表 14.7 所示。 表 14.7 线段折点修饰风格简介常 量 名 称常 量 值修 饰 办 法BasicStroke.JOIN_MITER0对线段折点不加任何修饰BasicStroke.JOIN_ROUND1在折线段的两端加半圆进行修饰,半圆的直径为 线段的宽度BasicStr

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

8、h_phase=0,则虚线正常绘制;如果 dash_phase=3,则第一段短化线的长度为 6-3,后面 则正常绘制。示例 14-04 编程类图书年销量折线图分析 下面来看一个绘制折线图的例子,该例绘制的折线图效果如图 14.6 和图 14.7 所示。图 14.6 普通效果的折线图 图 14.7 3D 效果的折线图 代码 14-04 光盘位置:光盘mingrisoft14sl04 下面的代码负责定义折线的绘制风格,并将指定的图例用实线绘制,代码如下: BasicStroke realLine = new BasicStroke(1.6f); float dashes = 8.0f ; / 定义

9、虚线数组 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 re

10、nderer.setSeriesStroke(i, brokenLine); / 利用虚线绘制 下面的代码负责获得横轴对象,并设置相关的绘图属性,代码如下: CategoryAxis domainAxis = plot.getDomainAxis(); domainAxis.setAxisLineStroke(new BasicStroke(1.6f); / 设置轴线粗细 domainAxis.setAxisLinePaint(Color.BLACK); / 设置轴线颜色 domainAxis.setCategoryLabelPositionOffset(5); / 设置统计种类与轴线的颜色

11、domainAxis.setLabelFont(new Font(“黑体“, Font.BOLD, 16); / 设置坐标轴标题字体 domainAxis.setLabelPaint(Color.BLACK); / 设置坐标轴标题颜色 / 设置坐标轴标题旋转角度,这里并未旋转,目的是告诉读者这个方法 domainAxis.setCategoryLabelPositions(CategoryLabelPositions.STANDARD); 下面的代码负责获得纵轴对象,并设置相关的绘图属性,代码如下: ValueAxis rangeAxis = plot.getRangeAxis(); rang

12、eAxis.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(“黑体“,

13、Font.BOLD, 16); / 设置坐标轴标题字体 rangeAxis.setLabelPaint(Color.BLACK); / 设置坐标轴标题颜色 rangeAxis.setLabelAngle(Math.PI / 2); / 设置坐标轴标题旋转角度横坐标只能事 Comparable 型的 晕 你看我构造函数里是这样写的, public void addValue(double value, Comparable rowKey, Comparable columnKey) addValue(new Double(value), rowKey, columnKey); public vo

14、id setValue(Number value, Comparable rowKey, Comparable columnKey) this.data.setValue(value, rowKey, columnKey); fireDatasetChanged(); JFreeChart 类: void setAntiAlias(boolean flag) 字体模糊边界 void setBackgroundImage(Image image) 背景图片 void setBackgroundImageAlignment(int alignment) 背景图片对齐方式(参数常 量在 org.jfree.ui.Align 类中定义) void setBackgroundImageAlpha(float alpha) 背景图片透明度(0.01.0) void setBackgroundPaint(Paint paint) 背景色 void setBorderPaint(Paint paint) 边界线条颜色 void setBorderStroke(Stroke stroke) 边界线条笔触 void setBorderVisible(boolean visible) 边界线条是否可见 -

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号