已阅读5页,还剩6页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
利用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.0BasicStroke(float width)创建一个指定宽度的实线对象,其他参数仍采用默认值BasicStroke(float width, int cap, int join)创建一个指定宽度、指定端点风格和指定折点风格的实线对象,折点控制值仍采用默认值10.0BasicStroke(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_BUTT0对线段端点不加任何修饰BasicStroke.CAP_ROUND1在线段端点加半圆进行修饰,半圆的直径为线段的宽度BasicStroke.CAP_SQUARE2在线段端点加矩形进行修饰,矩形的宽度为线段宽度的一半,矩形的高度为线段的宽度线段折点的修饰风格同样有3种,也由3个常量表示,具体信息如表14.7所示。表14.7 线段折点修饰风格简介常 量 名 称常 量 值修 饰 办 法BasicStroke.JOIN_MITER0对线段折点不加任何修饰BasicStroke.JOIN_ROUND1在折线段的两端加半圆进行修饰,半圆的直径为线段的宽度BasicStroke.JOIN_BEVEL2将组成折点的两条线段的外侧延长至相交,然后填充被包的区域入口参数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 光盘位置:光盘mingrisoft14sl04下面的代码负责定义折线的绘制风格,并将指定的图例用实线绘制,代码如下: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); / 设置坐标轴标题旋转角度横坐标只能事Comparable型的 晕 你看我构造函数里是这样写的, public void addValue(double value, Comparable rowKey, Comparable columnKey) addValue(new Double(value), rowKey, columnKey); public void 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) 边界线条是否可见 - TextTitle类: void setFont(Font font) 标题字体 void setPaint(Paint paint) 标题字体颜色 void setText(String text) 标题内容 - StandardLegend(Legend)类: void setBackgroundPaint(Paint paint) 图示背景色 void setTitle(String title) 图示标题内容 void setTitleFont(Font font) 图示标题字体 void setBoundingBoxArcWidth(int arcWidth) 图示边界圆角宽 void setBoundingBoxArcHeight(int arcHeight) 图示边界圆角高 void setOutlinePaint(Paint paint) 图示边界线条颜色 void setOutlineStroke(Stroke stroke) 图示边界线条笔触 void setDisplaySeriesLines(boolean flag) 图示项是否显示横线(折线图有效) void setDisplaySeriesShapes(boolean flag) 图示项是否显示形状(折线图有效) void setItemFont(Font font) 图示项字体 void setItemPaint(Paint paint) 图示项字体颜色 void setAnchor(int anchor) 图示在图表中的显示位置(参数常量在Legend类中定义) - Axis类: void setVisible(boolean flag) 坐标轴是否可见 void setAxisLinePaint(Paint paint) 坐标轴线条颜色(3D轴无效) void setAxisLineStroke(Stroke stroke) 坐标轴线条笔触(3D轴无效) void setAxisLineVisible(boolean visible) 坐标轴线条是否可见(3D轴无效) void setFixedDimension(double dimension) (用于复合表中对多坐标轴的设置) void setLabel(String label) 坐标轴标题 void setLabelFont(Font font) 坐标轴标题字体 void setLabelPaint(Paint paint) 坐标轴标题颜色 void setLabelAngle(double angle) 坐标轴标题旋转角度(纵坐标可以旋转) void setTickLabelFont(Font font) 坐标轴标尺值字体 void setTickLabelPaint(Paint paint) 坐标轴标尺值颜色 void setTickLabelsVisible(boolean flag) 坐标轴标尺值是否显示 void setTickMarkPaint(Paint paint) 坐标轴标尺颜色 void setTickMarkStroke(Stroke stroke) 坐标轴标尺笔触 void setTickMarksVisible(boolean flag) 坐标轴标尺是否显示 ValueAxis(Axis)类: void setAutoRange(boolean auto) 自动设置数据轴数据范围 void setAutoRangeMinimumSize(double size) 自动设置数据轴数据范围时数据范围的最小跨度 void setAutoTickUnitSelection(boolean flag) 数据轴的数据标签是否自动确定(默认为true) void setFixedAutoRange(double length) 数据轴固定数据范围(设置100的话就是显示MAXVALUE到MAXVALUE-100那段数据范围) void setInverted(boolean flag) 数据轴是否反向(默认为false) void setLowerMargin(double margin) 数据轴下(左)边距 void setUpperMargin(double margin) 数据轴上(右)边距 void setLowerBound(double min) 数据轴上的显示最小值 void setUpperBound(double max) 数据轴上的显示最大值 void setPositiveArrowVisible(boolean visible) 是否显示正向箭头(3D轴无效) void setNegativeArrowVisible(boolean visible) 是否显示反向箭头(3D轴无效) void setVerticalTickLabels(boolean flag) 数据轴数据标签是否旋转到垂直 void setStandardTickUnits(TickUnitSource source) 数据轴的数据标签(可以只显示整数标签,需要将AutoTickUnitSelection设false) NumberAxis(ValueAxis)类: void setAutoRangeIncludesZero(boolean flag) 是否强制在自动选择的数据范围中包含0 void setAutoRangeStickyZero(boolean flag) 是否强制在整个数据轴中包含0,即使0不在数据范围中 void setNumberFormatOverride(NumberFormat formatter) 数据轴数据标签的显示格式 void setTickUnit(NumberTickUnit unit) 数据轴的数据标签(需要将AutoTickUnitSelection设false) DateAxis(ValueAxis)类: void setMaximumDate(Date maximumDate) 日期轴上的最小日期 void setMinimumDate(Date minimumDate) 日期轴上的最大日期 void setRange(Date lower,Date upper) 日期轴范围 void setDateFormatOverride(DateFormat formatter) 日期轴日期标签的显示格式 void setTickUnit(DateTickUnit unit) 日期轴的日期标签(需要将AutoTickUnitSelection设false) void setTickMarkPosition(DateTickMarkPosition position) 日期标签位置(参数常量在org.jfree.chart.axis.DateTickMarkPosition类中定义) CategoryAxis(Axis)类: void setCategoryMargin(double margin) 分类轴边距 void setLowerMargin(double margin) 分类轴下(左)边距 void setUpperMargin(double margin) 分类轴上(右)边距 void setVerticalCategoryLabels(boolean flag) 分类轴标题是否旋转到垂直 void setMaxCategoryLabelWidthRatio(float ratio) 分类轴分类标签的最大宽度 Plot类: void setBackgroundImage(Image image) 数据区的背景图片 void setBackgroundImageAlignment(int alignment) 数据区的背景图片对齐方式(参数常量在org.jfree.ui.Align类中定义) void setBackgroundPaint(Paint paint) 数据区的背景图片背景色 void setBackgroundAlpha(float alpha) 数据区的背景透明度(0.01.0) void setForegroundAlpha(float alpha) 数据区的前景透明度(0.01.0) void setDataAreaRatio(double ratio) 数据区占整个图表区的百分比 void setOutLinePaint(Paint paint) 数据区的边界线条颜色 void setOutLineStroke(Stroke stroke) 数据区的边界线条笔触 void setNoDataMessage(String message) 没有数据时显示的消息 void setNoDataMessageFont(Font font) 没有数据时显示的消息字体 void setNoDataMessagePaint(Paint paint) 没有数据时显示的消息颜色 CategoryPlot(Plot)类: void setDataset(CategoryDataset dataset) 数据区的2维数据表 void setColumnRenderingOrder(SortOrder order) 数据分类的排序方式 void setAxisOffset(Spacer offset) 坐标轴到数据区的间距 void setOrientation(PlotOrientation orientation) 数据区的方向(PlotOrientation.HORIZONTAL或PlotOrientation.VERTICAL) void setDomainAxis(CategoryAxis axis) 数据区的分类轴 void setDomainAxisLocation(AxisLocation location) 分类轴的位置(参数常量在org.jfree.chart.axis.AxisLocation类中定义) void setDomainGridlinesVisible(boolean visible) 分类轴网格是否可见 void setDomainGridlinePaint(Paint paint) 分类轴网格线条颜色 void setDomainGridlineStroke(Stroke stroke) 分类轴网格线条笔触 void setRangeAxis(ValueAxis axis) 数据区的数据轴 void setRangeAxisLocation(AxisLocation location) 数据轴的位置(参数常量在org.jfree.chart.axis.AxisLocation类中定义) void setRangeGridlinesVisible(boolean visible) 数据轴网格是否可见 void setRangeGridlinePaint(Paint paint) 数据轴网格线条颜色 void setRangeGridlineStroke(Stroke stroke) 数据轴网格线条笔触 void setRenderer(CategoryItemRenderer renderer) 数据区的表示者(详见Renderer组) void addAnnotation(CategoryAnnotation annotation) 给数据区加一个注释 void addRangeMarker(Marker marker,Layer layer) 给数据区加一个数值范围区域 PiePlot(Plot)类: void setDataset(PieDataset dataset) 数据区的1维数据表 void setIgnoreNullValues(boolean flag) 忽略无值的分类 void setCircular(boolean flag) 饼图是否一定是正圆 void setStartAngle(double angle) 饼图的初始角度 void setDirection(Rotation direction) 饼图的旋转方向 void setExplodePercent(int section,double percent) 抽取的那块(1维数据表的分类下标)以及抽取出来的距离(0.01.0),3D饼图无效 void setLabelBackgroundPaint(Paint paint) 分类标签的底色 void setLabelFont(Font font) 分类标签的字体 void setLabelPaint(Paint paint) 分类标签的字体颜色 void setLabelLinkMargin(double margin) 分类标签与图的连接线边距 void setLabelLinkPaint(Paint paint) 分类标签与图的连接线颜色 void setLabelLinkStroke(Stroke stroke) 分类标签与图的连接线笔触 void setLabelOutlinePaint(Paint paint) 分类标签边框颜色 void setLabelOutlineStroke(Paint paint) 分类标签边框笔触 void setLabelShadowPaint(Paint paint) 分类标签阴影颜色 void setMaximumLabelWidth(double width) 分类标签的最大长度(0.01.0) void setPieIndex(int index) 饼图的索引(复合饼图中用到) void setSectionOutlinePaint(int section,Paint paint) 指定分类饼的边框颜色 void setSectionOutlineStroke(int section,Stroke stroke) 指定分类饼的边框笔触 void setSectionPaint(int section,Paint paint) 指定分类饼的颜色 void setShadowPaint(Paint paint) 饼图的阴影颜色 void setShadowXOffset(double offset) 饼图的阴影相对图的水平偏移 void setShadowYOffset(double offset) 饼图的阴影相对图的垂直偏移 void setLabelGenerator(PieSectionLabelGenerator generator) 分类标签的格式,设置成null则整个标签包括连接线都不显示 void setToolTipGenerator(PieToolTipGenerator generator) MAP中鼠标移上的显示格式 void setURLGenerator(PieURLGenerator generator) MAP中钻取链接格式 PiePlot3D(PiePlot)类: void setDepthFactor(double factor) 3D饼图的Z轴高度(0.01.0) MultiplePiePlot(Plot)类: void setLimit(double limit) 每个饼图之间的数据关联(详细比较复杂) void setPieChart(JFreeChart pieChart) 每个饼图的显示方式(见JFreeChart类个PiePlot类)AbstractRenderer类: void setItemLabelAnchorOffset(double offset) 数据标签的与数据点的偏移 void setItemLabelsVisible(boolean visible) 数据标签是否可见 void setItemLabelFont(Font font) 数据标签的字体 void setItemLabelPaint(Paint paint) 数据标签的字体颜色 void setItemLabelPosition(ItemLabelPosition position) 数据标签位置 void setPositiveItemLabelPosition(ItemLabelPosition position) 正数标签位置 void setNegativeItemLabelPosition(ItemLabelPosition position) 负数标签位置 void setOutLinePaint(Paint paint) 图形边框的线条颜色 void setOutLineStroke(Stroke stroke) 图形边框的线条笔触 void setPaint(Paint paint) 所有分类图形的颜色 void setShape(Shape shape) 所有分类图形的形状(如折线图的点) void setStroke(Stroke stroke) 所有分类图形的笔触(如折线图的线) void setSeriesItemLabelsVisible(int series,boolean visible) 指定分类的数据标签是否可见 void setSeriesItemLabelFont(int series,Font font) 指定分类的数据标签的字体 void setSeriesItemLabelPaint(int series,Paint paint) 指定分类的数据标签的字体颜色 void setSeriesItemLabelPosition(int series,ItemLabelPosition position) 数据标签位置 void setSeriesPositiveItemLabelPosition(int series,ItemLabelPosition position) 正数标签位置 void setSeriesNegativeItemLabelPosition(int series,ItemLabelPosition position) 负数标签位置 void setSeriesOutLinePaint(int series,Paint paint) 指定分类的图形边框的线条颜色 void setSeriesOutLineStroke(int series,Stroke stroke) 指定分类的图形边框的线条笔触 void setSeriesPaint(int series,Paint paint) 指定分类图形的颜色 void setSeriesShape(int series,Shape shape) 指定分类图形的形状(如折线图的点) void setSeriesStroke(int series,Stroke stroke) 指定分类图形的笔触(如折线图的线) AbstractCategoryItemRenderer(AbstractRenderer)类: void setLabelGenerator(CategoryLabelGenerator generator) 数据标签的格式 void setToolTipGenerator(CategoryToolTipGenerator generator) MAP中鼠标移上的显示格式 void setItemURLGenerator(CategoryURLGenerator generator) MAP中钻取链接格式 void setSeriesLabelGenerator(int series,CategoryLabelGenerator generator) 指定分类的数据标签的格式 void setSeriesToolTipGenerator(int series,CategoryToolTipGenerator generator) 指定分类的MAP中鼠标移上的显示格式 void setSeriesItemURLGenerator(int series,CategoryURLGenerator generator) 指定分类的MAP中钻取链接格式 BarRenderer(AbstractCategoryItemRenderer)类: void setDrawBarOutline(boolean draw) 是否画图形边框 void setItemMargin(double percent) 每个BAR之间的间隔 void setMaxBarWidth(double percent) 每个BAR的最大宽度 void setMinimumBarLength(double min) 最短的BAR长度,避免数值太小而显示不出 void setPositiveItemLabelPositionFallback(ItemLabelPosition position) 无法在BAR中显示的正数标签位置 void setNegativeItemLabelPositionFallback(ItemLabelPosition position) 无法在BAR中显示的负数标签位置 BarRenderer3D(BarRenderer)类: void setWallPaint(Paint paint) 3D坐标轴的墙体颜色 GroupedStackedBarRenderer(StackedBarRenderer)类: void setSeriesToGroupMap(KeyToGroupMap map) 将分类自由的映射成若干个组(KeyToGroupMap.mapKeyToGroup(series,group)) LayeredBarRenderer(BarRenderer)类: void setSeriesBarWidth(int series,double width) 设定每个分类的宽度(注意设置不要使某分类被覆盖) WaterfallBarRenderer(B
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 【正版授权】 IEC 60794-1-107:2025 FR Optical fibre cables - Part 1-107: Generic specification - Basic optical cable test procedures - Mechanical test methods - Torsion,method E7
- 结石病人运动宣教
- ICU多脏器功能衰竭治疗规范培训
- 康大创业历程介绍
- 人体所需营养素
- 皮肤科湿疹中医药调理手册
- 哮喘用药健康教育
- 三方协议书怎么申请新的
- 人工费协议书
- 工程合同解除协议书
- DB11T 2442-2025 学校食堂异物管控规范
- 2025年武汉市汉阳区社区干事岗位招聘考试笔试试题(含答案)
- 2025年单证员考试历年真题汇编与模拟试卷
- 后勤岗位考试试题及答案
- 2025至2030铁路工程行业产业运行态势及投资规划深度研究报告
- 燃气餐饮安全培训课件
- 射击俱乐部管理制度
- 中医诊所消防管理制度
- 秋冬季呼吸道疾病的预防
- 2025年中央厨房行业现状及发展趋势分析报告
- GB/T 45547-2025食品生产追溯体系通用技术规范
评论
0/150
提交评论