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軸)

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