JFreeChart插件

JFreeChart的核心对象。
1.    制图对象
JFreeChart的类是制图对象。常用方法:
方法    说明
Void  setAntiAlias(Boolean  flag)    设置字体边界模糊
Void  setBackgroundImage(Image  img)    设置背景图片
Void  setBackgroundImageAlignment(int  alignment)    设置背景图片的对齐方式,其参数常量定义在org.jfree.ui.Align类中
Void  setBackgroundImageAlpha(float  alpa)    设置背景图片的透明度
Void  setBackgroundPaint(Paint  paint)    设置背景颜色
Void  setBorderPaint(Paint  paint)    设置边界线条颜色
Void  setBorderVisible(Boolean  visible)    设置边界线条是否可见

2.    制图工厂对象
ChartFactory工厂类创建JFreeChart对象。常用方法:
图表类型    方法    说明
柱形图    Static  JFreeChart  createBarChart()    创建一个常规的柱形图对象
    Static  JFreeChart  createBarChart3D()    创建一个常规的3D柱形图对象
饼状图    Static  JFreeChart  createPieChart()    创建一个常规的饼形图
    Static  JFreeChart  createPieChart3D()    创建一个常规的3D饼形图
区域图    Static  JFreeChart  createAreaChart()    创建一个常规区域图
折线图    Static  JFreeChart  createLineChart()    创建一个常规的折线图
    Static  JFreeChart  createLineChart3D()    创建一个常规的3D折线图
时序图    Static  JFreeChart   createTimeSeriesChart()    创建一个常规的时序图

创建对象实例:
JFreeChart  chart=ChartFactory.createPieChart3D(“饼形图”,initPieData(),true,true,false);
5个参数介绍:第一个参数为图表的标题;第二个参数为饼形图的数据对象;第三个参数是否显示图例;第四个参数为是否提示文本;第五个参数是否生成超链接。

3.    数据集合对象
Dataset接口是数据集合的核心对象。JFreeChart类的数据对象都是实现了此接口。
常用数据集合对象:
数据集合对象    说明
DefaultCategoryDataset    默认的类别数据集合对象,可用于创建柱形图、区域图数据集合
DefaultPieDataset    默认的饼状图数据集合对象,可用于创建饼状图数据集合
XYSeriesCollection    描述坐标轴序列类型的数据集合,可用于创建折线图等数据集合
TimeSeriesCollection    描述时间序列的数据集合,可用于创建时序图的数据集合

实例:
//实例化对象
DefaultCategoryDataset  dd=new  DefaultCategoryDataset();
//添加数据
dd.addValue(100,”长春”,”土豆”);

4.    绘图区对象
绘图区对象为Plot类,有3个常用的子类。PiePlot类、CategoryPlot类、XYPlot类。
Plot类常用方法:
方法    说明
Void  setBackgroundImage(Image  img)    设置数据区的背景图片
Void setBackgroundImageAlignment(int  align)    设置数据区的背景图片对齐方式,参数在org.jfree.ui.Align类中
Void  setBackgroundAlpha(float  alpha)    设置数据区的背景透明度,范围为0.0~1.0
Void  setForegroundAlpha(float  alpha)    设置数据区的前景透明度,范围为0.0~1.0
Void  setDataAreaRatio(double  ratio)    设置数据区占整个图表区的百分比
Void  setOutLinePaint(Paint  paint)    设置数据区的边界线条颜色
Void  setNoDataMessage(String  meg)    设置没有数据时显示的消息

PiePlot类常用方法:
方法    说明
Void  setDataset(PieDataset  data)    设置绘图制表所需要的数据集合
Void  setCircular(Boolean  flag)    设置饼状图是否一定是正圆
Void  setStartAngle(double  angle)    设置饼状图的初始角度
Void  setDirection(Rotation  direction)    设置饼状图的旋转方向
Void  setExplodePercent(int  section,double  percent)    设置抽取图标的部分及距离
Void  setLabelFont(Font  font)    设置分类标签字体(3D效果下无效)
Void  setLabelPaint(Paint  paint)    设置分类标签字体颜色(3D效果下无效)

CategoryPlot类常用的方法:
方法    说明
Void  setDataset(CategoryDataset  data)    设置绘图制表所需要的数据集合
Void  setColumnRenderingOrder(SortOrder  order)    设置数据分类排序方式
Void  setAxisOffset(Spacer  offset)    设置坐标到数据区的间距
Void  setOrientation(PlotOrientation  or)    设置数据区的方向(横向或纵向)
Void  setDomainAxis(CategoryAxis  axis)    设置数据区的分类轴
Void  setRangeAxis(ValueAxis  axis)    设置数据区的数据轴
Void  addAnnotation(CategoryAnnotation  ann)    设置数据区的注释

XYPlot类常用方法:
方法    说明
ValueAxis  getDomainAxis()    返回x轴
ValueAxis  getRangeAxis()    返回Y轴
Void  setDomainAxis(valueAxis  axis)    设置X轴
Void  setRanageAxis(valueAxis  axis)    设置Y轴

5.    坐标轴对象
Axis对象是父类,子类有:CategoryAxis类、ValueAxis类、NumberAxis类、DateAxis类。
Axis常用方法:
方法    说明
Void  setVisible(Boolean  flag)    设置坐标轴是否可见
Void  setAxisLinePaint(Paint  p)    设置坐标轴的颜色,3D效果下无效
Void  setAxisLineVisible(Boolean  b)    设置坐标轴的线条是否可见
Void  setLabel(String  label)    设置坐标轴的标题
Void  setLabelFont(Font  font)    设置坐标轴的字体
Void  setLabelPaint(Paint  p)    设置坐标轴标题颜色
Void  setLabelAngle(double  ang)    设置坐标轴标题选择角度

CategoryAxis类的常用方法
方法    说明
Void  setCategoryMargin(double  mg)    设置分类轴边距
Void  setLowerMargin(double  mg)    设置分类轴下边距或左边距
Void  setUpperMargin(double  mg)    设置分类轴上边距或右边距
Void  setVerticalCategoryLabels(Boolean  b)    设置分类轴标题是否旋转到垂直
Void  setMaxCategoryLabelWidthRatio(float  r)    设置分类轴分类标题的最大宽度

ValueAxis类常用方法:
方法    说明
Void  setAutoRange(Boolean  b)    设置数据轴数据范围是否为自动
Void  setFixedAutoRange(double  length)    设置数据轴固定数据范围
Void  setInverted(Boolean  flag)    设置数据轴是否反向
Void  setLowerMargin(double  mg)    设置数据轴下边距或左边距
Void  setUpperMargin(double  mg)    设置数据轴上边距或右边距
Void  setLowerBound(double  min)    设置数据轴上的显示最小值
Void  setUpperBound(double  max)    设置数据轴上的显示最大值

NumberAxis类常用方法:
方法    说明
Void  setAutoRangeIncludesZero(Boolean  b)    设置是否强制在自动选择的数据范围中包含0
Void  setAutoRangeStickyZero(Boolean  b)    设置是否强制在整个数据轴中包含0,即使0不在数据范围中
Void  setNumberFormatOverride(NumberFormat  ft)    设置数据轴数据标签的显示格式

DateAxis类常用方法:
方法    说明
Void  setMaximumDate(Date  max)    设置日期轴上的最大日期
Void  setMinimumDate(Date  min)    设置日期轴上的最小日期
Void  setDateFormatOverride(DateFormat  fmt)    设置日期轴上日期标签的显示格式
Void  setTickUnit(DateTickUnit  un)    设置日期轴的日期标签

6.    渲染图片对象
AbstractRender类图片渲染对象,常用方法为:
方法    说明
Void  setItemLabelAnchorOffset(double  os)    设置数据标签与数据点的偏移
Void  setItemLabelsVisible(Boolean  b)    设置数据标签是否可见
Void  setItemLabelFont(Font  f)    设置数据标签的字体
Void  setItemLabelPaint(Paint  p)    设置数据标签的字体颜色
Void  setOutLinePaint(Paint  p)    设置图形边框的线条颜色
Void  setPaint(paint  p)    设置所有分类图形的颜色
Void  setSeriesItemLabelsVisible(int  I,Boolean  b)    设置分类的数据标签是否可见
Void  setSeriesItemLabelFont(int  I,Font  f)    设置分类的数据标签的字体
Void  setSeriesItemLabelPaint(int  I,Paint  p)    设置分类的数据标签的字体颜色

实例
public class ChartUtil {
    /**
     * 创建数据集合
     * @return  CategoryDataset对象
     */
    public static  CategoryDataset createDataSet(){
        //创建数据DefaultCategoryDataset对象用于创建柱形图
        DefaultCategoryDataset  dset=new DefaultCategoryDataset();
        //添加数据
        dset.addValue(100, "java图书", "SE类");
        dset.addValue(600, "java图书", "EE类");
        dset.addValue(780, "java图书", "ME类");
        
        return dset;
    } 
    
/**
 * 创建JFreeChart对象
 * @return JFreeChart对象
 */
public  static JFreeChart createChart(){
    //设置图表主题样式类
    StandardChartTheme  stme=new StandardChartTheme("CN");
    //设置标题字体
    //stme.setExtraLargeFont(new  Font("隶书",Font.BOLD,20));
    //设置图例的字体
    //stme.setRegularFont(new Font("微软雅黑",Font.PLAIN,10));
    //设置轴向的字体
    //stme.setLargeFont(new Font("微软雅黑",Font.PLAIN,10));
    
    //创建JFreeChart对象
    JFreeChart  chart=ChartFactory.createBarChart("Java 图", "Java EE", "XL", createDataSet());
    
    return chart;
}
}

Jsp页面代码
使用img标签配置Src是要将路径设置好,就是JfreeChart生成图片的路径
<%@ page
import="java.util.*,org.jfree.chart.servlet.*,com.wgh.ChartUtil" %>
……
<%

//使用ServletUtilities类的saveChartAsJPEG方法将图表转化为图片显示
String  fileName=ServletUtilities.saveChartAsJPEG(ChartUtil.createChart(), 400, 300,session);

%>
<%=fileName %>

<img  src="temp/<%=fileName%>">
原文地址:https://www.cnblogs.com/gynbk/p/6556277.html