jfreechart使用

JFreeChart是开放源代码的图形报表组件(开源站点SourceForge.net上的一个Jave项目),其主页为www.jfree.org/jfreechart/index.html

JFreeChart的核心对象

制图对象(JFreeChart)
在JFreeChart类中,可以设置所生成图片的边界、字体、背景、透明度等属性,其常用方法.
public void setAntiAlias(boolean flag)设置字体模糊边界
public void setBackgroundImage(Image image)设置背景图片
public void setBackgroundImageAlignment(int alignment)背景图片对齐方式,常量在Align类中
public void setBackgroundImageAlpha(float alpha)设置背景图片透明度
public void setBackgroundPaint(Paint paint)设置背景颜色
public void setBorderPaint(Paint paint)设置边界线条颜色
public void setBorderVisible(boolean visible)设置边界线条是否可见

制图工厂对象(ChartFactory)
制图对象JFreeChart一般都使用制图工厂ChartFactory类进行创建
ChartFactory类常用方法及说明
柱形图    createBarChart(),createBarChart3D()
饼形图    createPieChart(),createPieChart3D()
折线图    createLineChart(),createLineChart3D()
时序图    createTimeSeriesChart()
区域图    createAreaChart()

数据集合对象(Dataset)
在JFreeChart组件中,针对不同图表类型提供了不同的数据集合对象.Dataset接口是数据集合的核心对象
常用数据集合对象及说明
DefaultCategoryDataset类:可用于创建柱形图、区域图数据集合
DefaultPieDataset类:可用于创建饼形图数据集合
TimeSeriesCollection类:可用于创建时序图等数据集合
XYSeriesCollection类:可用于创建折线图等数据集合


绘图区对象(Plot)
public void setBackgroundImage(Image image)设置数据区的背景图片
public void setBackgroundImageAlignment(int alignment)背景图片对齐方式,参数常量Align类中
public void setBackgroundAlpha(float alpha)数据区的背景透明度,范围在0.0~1.0间
public void setForegroundAlpha(float alpha)数据区的前景透明度
public void setDataAreaRatio(double ratio)设置数据区占整个图表区的百分比
public void setOutLinePaint(Paint paint)设置数据区的边界线条颜色
public void setNoDataMessage(String message)设置没有数据时显示的消息
   
在对不同类型图形的设置中,可以通过Plot的子类进行实现

PiePlot(饼形图) 常用方法及说明
public void setDataset(PieDataset dataset)设置绘制图表所需要的数据集合
public void setCircular(boolean flag)设置饼形图是否一定是正圆
public void setStartAngle(double angle)设置饼形图的初始角度
public void setDirection(Rotation direction)设置饼形图的旋转方向
public void setLabelFont(Font font)设置分类标签字体(3D效果下无效)
public void setLabelPaint(Paint paint)设置分类标签字体颜色(3D效果下无效)
public void setLabelGenerator(new StandardPieSectionLabelGenerator("{0}({2} percent)"));
// 设显示值的样式, {0} 表示 data 的 KEY ,{1} 表示 :value ;{2} 表示站圆饼的百分比
public void setExplodePercent(int section,double percent)
//抽取的那块( 1 维数据表的分类下标)以及抽取出来的距离( 0.0 ~ 1.0 ), 3D 饼图无效


CategoryPlot (折线图、区域图)常用方法及说明
public void setDataset(PieDataset dataset)数据集合
public void setColumnRenderingOrder(SortOrder order)设置数据分类的排序方式
public void setAxisOffset(Spacer offset)设置坐标轴到数据区的间距
public void setOrientation(PlotOrientation orientation)数据区的方向(横向或纵向)
public void setDomainAxis(CategoryAxis axis)数据区的分类轴(X轴)
public void setRangeAxis(ValueAxis axis)设置数据区的数据轴(Y轴)
public void addAnnotation(CategoryAnnotation annotation)设置数据区的注释
public ValueAxis getDomainAxis()返回X轴
public ValueAxis getRangeAxis()返回Y轴


坐标轴对象(Axis)
Axis坐标轴对象的父类,常用方法及说明
public void setVisible(boolean flag)设置坐标轴是否可见
public void setAxisLinePaint(Paint paint)坐标轴线条颜色(3D效果下无效)
public void setAxisLineVisible(boolean visible)设置坐标轴线条是否可见
public void setLabel(String label)设置坐标轴标题
public void setLabelFont(Font font)设置坐标轴标题字体

public void setLabelPaint(Paint paint)设置坐标轴标题颜色
public void setLabelAngle(double angle)设置坐标轴标题旋转角度

CategoryAxis
public void setCategoryMargin(double margin)设置分类轴边距
public void setLowerMargin(double margin)设置分类轴下边距或左边距
public void setUpperMargin(double margin)设置分类轴上边距或右边距
public void setVerticalCategoryLabels(boolean flag)设置分类轴标题是否旋转到垂直
public void setMaxCategoryLabelWidthRatio(float ratio)设置分类轴分类标签的最大宽度

ValueAxis
public void setAutoRange(boolean auto)设置数据轴数据范围是否为自动
public void setFixedAutoRange(double length)设置数据轴固定数据范围
public void setInverted(boolean flag)设置数据轴是否反向
public void setLowerMargin(double margin)设置分类轴下边距或左边距
public void setLowerMargin(double margin)设置分类轴下边距或左边距
public void setUpperMargin(double margin)设置分类轴上边距或右边距
public void setLowerBound(double min)设置数据轴上显示的最小值
public void setUpperBound(double max)设置数据轴上显示的最大值

NumberAxis
主要用于对数值类型数据轴的相关属性进行设置
public void setAutoRangeIncludesZero(boolean flag)设置是否强制在自动,选择的数据范围中包含0
public void setAutoRangeStickyZero(boolean flag)是否强制在数据轴中包含0,即使0不在数据范围中
public void setNumberFormatOverride(NumberFormat formatter)设置数据轴数据标签的显示格式

DateAxis
日期轴的相关属性进行设置,ValueAxis类的子类
public void setMaximumDate(Date maximumDate)日期轴上的最小日期
Public void setMinimumDate(Date minimumDate)日期轴上的最大日期
public void setDateFormatOverride(DateFormat formatter)日期轴日期标签的显示格式
public void setTickUnit(DateTickUnit unit)日期轴的日期标签

图片渲染对象
图片渲染对象用于渲染和显示图表,它在图表的显示效果方面起着很大的作用
AbstractRenderer常用方法及说明
public void setItemLabelAnchorOffset(double offset)设置数据标签与数据点的偏移
public void setItemLabelsVisible(boolean visible)设置数据标签是否可见
public void setItemLabelFont(Font font)设置数据标签的字体
public void setItemLabelPaint(Paint paint)数据标签的字体颜色
public void setOutLinePaint(Paint paint)设置图形边框的线条颜色
public void setPaint(Paint paint)所有分类图形的颜色
public void setSeriesItemLabelsVisible(int series,boolean visible)分类的数据标签是否可见
public void setSeriesItemLabelFont(int series,Font font)设置分类的数据标签的字体
public void setSeriesItemLabelPaint(int series,Paint paint)设置分类的数据标签的字体颜色

ChartUtilities
图表工具类,用于输出各种图表
saveChartAsJPEG(File file, JFreeChart chart, int width, int height)
saveChartAsPNG(File file, JFreeChart chart, int width, int height)     
writeChartAsPNG(OutputStream out,  JFreeChart chart, int width, int height)
writeChartAsJPEG(OutputStream out, JFreeChart chart, int width, int height)


ServletUtilities
saveChartAsPNG(JFreeChart chart,int width,int height,HttpSession session)

JFreeChart组件能够生成JPEG、PNG格式的图片

如何获取图片

配置JFreeChart
加入 jfreechart_xxx.jar jcommon_xxx.jar gnujaxp.jar
配置 DisplayChart, 该 servlet 必须接收一个叫 filename 的参数,传要显示的 chart 的图片的名称
<servlet>
    <servlet-name>DisplayChart</servlet-name>
    <servlet-class>org.jfree.chart.servlet.DisplayChart</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>DisplayChart</servlet-name>
    <url-pattern>/servlet/DisplayChart</url-pattern>
</servlet-mapping>

ServletUtilities
public static String saveChartAsJPEG(
    JFreeChart chart,
    int width,        //生成图片的宽度           
    int height,        //生成图片的高度
    HttpSession session)throws IOException
通过此方法生成图片后,调用已注册的JFreeChart提供的Servlet类DisplayChart,
即可获取图片的相对路径。
String fileName = ServletUtilities.saveChartAsJPEG(chart, 450, 300, session);
String graphURL = request.getContextPath() + "/DisplayChart?filename=" + fileName;
通过此路径即可对所生成的图片进行访问

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值