JFreeChart综述:

JFreeChart综述:

在进行源代码讲解之前,有必要将本人所领悟到的一些关于jfreechart的概念讲述下,jfreechart工具基本上把一个图形分成了几个逻辑部分。
      1.首先是整个的画布对象(chart),画布就相当与一个大的容器,包含一些图形元素,比如为一张白纸
      2.然后是画图区域对象(plot),就是实际图形所占据的区域,比如为白纸上的一个长方形
      3.然后是图形所需要两条轴对象(axis),比如为白纸上的两条轴线
      4.最后是如何进行图像的绘制对象(render),比如为一只画图的笔
      5.除开上面的这些对象,还有一个最主要的就是通过必须的数据集(dataset)来生成图形了

 


pie   charts   (2D   and   3D) :饼图(平面和立体)
bar   charts   (regular   and   stacked,   with   an   optional   3D   effect) :柱状图
line   and   area   charts :曲线图
scatter   plots   and   bubble   charts
time   series,   high/low/open/close   charts   and   candle   stick   charts :时序图
combination   charts :复合图
Pareto   charts
Gantt   charts :甘特图
wind   plots,   meter   charts   and   symbol   charts
wafer   map   charts
( 态图表,饼图(二维和三维)   ,   柱状图   ( 水平,垂直),线图,点图,时间变化图,甘特图,   股票行情图,混和图,   温度计图,   刻度图等常用商用图表)
图形可以导出成PNG和JPEG格式,同时还可以与PDF和EXCEL关联

 


     JFreeChart 核心类库介绍:
             研究jfreechart源码发现源码的主要由两个大的包组成:org.jfree.chart,org.jfree.data。其中前者主要与图形
     本身有关,后者与图形显示的数据有关。具体研究如果大家有兴趣的话可以自己研究    。
          核心类主要有:
            org.jfree.chart.JFreeChart :图表对象,任何类型的图表的最终表现形式都是在该对象进行一些属性的定制。JFreeChart引擎本身提供了一个工厂类用于创建不同类型的图表对象
            org.jfree.data.category.XXXDataSet: 数据集对象,用于提供显示图表所用的数据。根据不同类型的图表对应着很多类型的数据集对象类
            org.jfree.chart.plot.XXXPlot :图表区域对象,基本上这个对象决定着什么样式的图表,创建该对象的时候需要Axis、Renderer以及数据集对象的支持
            org.jfree.chart.axis.XXXAxis :用于处理图表的两个轴:纵轴和横轴
            org.jfree.chart.render.XXXRender :负责如何显示一个图表对象
            org.jfree.chart.urls.XXXURLGenerator: 用于生成Web图表中每个项目的鼠标点击链接
            XXXXXToolTipGenerator: 用于生成图象的帮助提示,不同类型图表对应不同类型的工具提示类

 

 

JFreeChart,图表对象,任何类型的图表的最终表现形式都是在该对象进行一些属性的定制。
JFreeChart引擎本身提供了一个工厂类(ChartFactory)用于创建不同类型的图表对象.
例如:public abstract class ChartFactory {}
JFreeChart chart = ChartFactory.createBarChart3D(N个参数);
chart.setXXX()....

 

org.jfree.chart.tooltips.CategoryToolTipGenerator#generateToolTip(CategoryDataset, int, int)
这个接口中的这个方法使鼠标放到曲线上就显示相应数据。

 

 

de.laures.cewolf.util.Renderer

 private static synchronized void handleJPEG(
  ByteArrayOutputStream baos,
  JFreeChart chart,
  int width,
  int height,
  ChartRenderingInfo info)
  throws IOException {
  ChartUtilities.writeChartAsJPEG(baos, chart, width, height, info);
 } 

 

DateAxis  时间轴(X轴)
NumberAxis 数值轴(Y轴)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章