<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    JavaExplore

    一切像霧像雨又像風
    posts - 19, comments - 45, trackbacks - 0, articles - 0

    【原創】深入探究JFreeChart(1)

    Posted on 2006-09-01 23:21 JavaExplore 閱讀(9947) 評論(1)  編輯  收藏

    1 簡介

    JFreeChart SourceForge.net 上的一個開源項目,它的源碼和 API 都可以免費獲得。 JFreeChart 的功能非常強大,可以實現餅圖 ( 二維和三維 ) ,  柱狀圖  ( 水平 , 垂直 ), 線圖 , 點圖 , 時序圖 , 甘特圖 股票行情圖 , 混和圖 溫度計圖 刻度圖等常用商用圖表,   圖形可以導出成 PNG JPEG 格式,同時還可以與 PDF EXCEL 關聯,支持對圖形的放大、縮小,支持常見圖形的 3D 顯示。

    2 圖形 對象的處理

    2 1 JFreeChart對象

    JFreeChart 可以生成很多圖形對象,它的工廠類提供了 33 個工廠方法用于生成不同的圖形對象(具體的工廠方法可以參見 JFreeChart API 手冊或者源碼中的 ChartFactory )。              JFreechart 對圖形對象的抽象具體化。圖形對象( JFreeChart ),由 Title( 主標題 ) SubTitle (子標題 ) Plot (圖形的繪制結構)等幾個主要對象組成。各個組成部分如下圖所示:

    這是一個 JFreeChart 對象,上面的“ chart 標題”是 Title 對象,中間區域是 Plot 對象(包括繪圖區域和坐標軸區域),下面的區域是 LegendTitle 對象,是一種 SubTitle 對象。

    每個 JFreeChart 對象只能有 1 Title 對象, 1 Plot 對象,可以有多個 SubTitle 對象。 JFreeChart 對象可以進行的操作有:背景的設置(背景顏色、背景圖片、透明度等)、邊框的設置(是否可見、筆畫、 Paint 等)、渲染方式的設置、標題對象的設置、子標題對象的增刪查操作。(本文中的所有操作都不提供代碼級的介紹,可參見 API 手冊或者源碼)

    2 2 主標題對象

    主標題對象是 TextTitle 類型,可以進行的操作有:背景設置、字體設置(字體類型、顏色、內容、對齊方式等操作)、 tooltip 設置、 URL 設置。

    2 3 Plot 對象

    Plot 對象是圖形的繪制結構對象。 JFreeChart 中含有很多不同的 Plot 對象,每一種圖形對象中的 Plot 對象都在實例化的時候創建。所有的 Plot 共有的操作有:背景設置(背景顏色、背景圖片、透明度等)、前景透明度設置、無數據存在情況的設置(顯示的字符內容、顯示的字體、顯示的 Paint )、放大縮小比例的設置,大部分 Plot 對象還有設置 Datset 、設置 Renderer 對象操作。

    JFreeChart 中有 18 Plot 抽象類的具體實現類。 Plot 的具體實現類主要由以下重要對象組成: Renderer 對象(圖形的繪制單元——繪圖域) Datset (圖形的數據源), DomainAxis (區域軸,相當于 x 軸), RangeAxis (范圍軸,相當于 y 軸)。不同的 Plot 對象組成方式不盡相同,有的不含有 Renderer 對象,比如 CompassPlot ContourPlot MultiplePiePlot PiePlot 等,有的不含有 DomainAxis RangeAxis 對象,另外除了 FastScatterPlot 類都含有 Datset 對象, FastScatterPlot 使用 float 的二維數組充當數據源。尤其說明一點,餅狀圖相關的 Plot 對象( MultiplePiePlot PiePlot PiePlot3D RingPlot )中都不含有 Renderer 對象、 DomainAxis 對象、 RangeAxis 對象。

    一般來說, Datset 對象存儲數據模型, Renderer 對象存儲顯示模型, Plot 對象根據 Datset 對象、 Renderer 對象完成畫圖操作。

    仍以上面的圖形講解 Plot 對象的組成。

       上圖的中間區域是是一個 XYPlot 對象。其中的折線部分即是圖形的繪制單元 Renderer 對象。 X 軸是 DomainAxis y 軸是 RangeAxis ,其中 Datset 對象屬于數據模型范疇,是 UI 不可見對象。該圖中的 plot 背景色、網格線的各種設置可以通過 XYPlot 對象本身完成。

           下面講解 Renderer 對象、 Axis 對象( X 軸、 y 軸都屬于 Axis 對象), Datset 對象在后續章節中專門講解。

    2 31 Renderer對象

    Renderer 對象是圖形的繪制單元。 JFreeChart 提供了兩個接口 CategoryItemRenderer XYItemRenderer 1 個抽象類 AbstractRenderer 供具體的 Renderer 類實現,給出了將近 50 種具體實現類。

    一般來說 Renderer 對象可進行的操作有:對 item label (下圖中的柱狀圖上的紅色數字即為 item label 的示例)的默認設置( item label 的產生方式、是否可見、字體、 Paint 、正反向 item label 的位置設置等)、繪制圖形的邊框默認設置( Paint 、筆畫、是否可見等)、繪制圖形的默認設置(形狀、筆畫、是否可見、對應的圖例中是否可見等,折線圖還有線條是否可見、折點圖形是否可見、折點圖形是否填充、折點圖形的形狀、對應的圖例中線條是否可見、圖形是否可見、整體是否可見等)、以及對指定 item label 的設置、指定繪制圖形的設置。可以說和具體繪制的圖形相關的屬性都可以通過 Renderer 對象設置。

    不同的 Renderer 的實現類實現了不同的顯示方式,在含有 Renderer 對象的 JFreeChart 對象中, R enderer 對象決定了JFreeChart對象的顯示方式。例如:柱狀圖的Plot對象中默認的Renderer對象是 CategoryItemRenderer 對象,通過設置 Plot 對象的Renderer對象 LineAndShapeRenderer ,則柱狀圖變為線圖。使用中一般不需要顯式的實例化一個 R enderer 對象,一般通過 JFreeChart 對象的 Plot 對象調用現有的 R enderer 對象進行重新設置等操作。

    2 32 Axis對象

    JFreeChart 提供了兩種類型的坐標軸: CategoryAxis (等級軸)和 ValueAxis (值軸), ValueAxis 又有 3 個子類: DateAxis (時間軸)、 NumberAxis (數字軸)、 PeriodAxis (時期軸)。這些坐標軸還有更詳細的子類,不再一一列舉

    Axis 對象可進行的操作有:標題的設置(內容、字體、Paint、顯示角度等)、坐標線的設置(筆畫、Paint、是否可見等)、刻度線的設置(是否可見、筆畫、Paint、位于繪圖區域的長度、位于繪圖區域外的長度等)、刻度標示的設置(筆畫、Paint、字體、與軸的距離等)、坐標軸范圍設置等。

    CategoryAxis 對象還可以進行的操作有: 刻度標示間距 設置( 最小間距、最大間距、指定間距)等。

    ValueAxis 對象可進行的操作有:軸端設置(顯示的圖形形狀)、范圍設置(是否自動產生范圍、自動產生的最小范圍、最大范圍、指定確定范圍、指定范圍大小等)、間隔設置(是否自動產生間隔、指定間隔)等。

    DateAxis 對象還有對時間刻度顯示格式的設置操作。

    2 4 子標題對象

        子標題對象是 Title 類型的對象,一個JFreeChart可以有多個子標題對象。JFreeChart提供了5Title的實現,可以是圖片、文本、圖例等的形式。

    (數據源以及常用圖形的處理以及進一步的討論在后續文章中介紹)
     

    Feedback

    # re: 【原創】深入探究JFreeChart(1)  回復  更多評論   

    2006-09-08 09:56 by hhh

    jfreechart 小組 http://www.douban.com/group/19919/

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 四虎精品成人免费视频| 亚洲国产精品美女久久久久| 一级做a毛片免费视频| 国产免费牲交视频| 精品国产亚洲第一区二区三区| 成人au免费视频影院| 亚洲综合在线一区二区三区| 99久久免费国产香蕉麻豆| 亚洲三级中文字幕| 在线免费观看中文字幕| 在线观看免费亚洲| 亚洲精品视频在线看| 中文在线日本免费永久18近| 亚洲AV人无码综合在线观看| 99久久99久久精品免费观看| 亚洲特级aaaaaa毛片| 四虎成人免费影院网址| 国产偷国产偷亚洲高清在线| 亚洲综合久久夜AV | 久久精品国产影库免费看| 亚洲天堂中文资源| 国产免费看JIZZ视频| 亚洲av成人一区二区三区观看在线| 亚洲黄片毛片在线观看| 三年片免费观看大全国语| 亚洲国产综合91精品麻豆| 无码乱肉视频免费大全合集 | 13一14周岁毛片免费| 丁香婷婷亚洲六月综合色| 亚洲精品视频免费| 18禁美女裸体免费网站| 久久亚洲中文字幕无码| 亚洲色精品vr一区二区三区| 1000部免费啪啪十八未年禁止观看 | 色婷婷综合缴情综免费观看| 亚洲一区二区在线视频| 卡1卡2卡3卡4卡5免费视频| 久久高潮一级毛片免费| 亚洲五月综合缴情婷婷| AV在线播放日韩亚洲欧| 97性无码区免费|