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

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

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

    posts - 32,  comments - 3,  trackbacks - 0

     

    1簡介

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

    2圖形對象的處理

    2.1 JFreeChart對象

    JFreeChart可以生成很多圖形對象,它的工廠類提供了33個工廠方法用于生成不同的圖形對象(具體的工廠方法可以參見JFreeChartAPI手冊或者源碼中的ChartFactory)。JFreechart對圖形對象的抽象具體化。圖形對象(JFreeChart),由Title(主標題)SubTitle(子標題)Plot(圖形的繪制結構)等幾個主要對象組成。各個組成部分如下圖所示:
       
        
    這是一個JFreeChart對象,上面的“chart標題”是Title對象,中間區域是Plot對象(包括繪圖區域和坐標軸區域),下面的區域是LegendTitle對象,LegendTitle是一種SubTitle對象。

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

    2.2 主標題對象

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

    2.3 Plot對象

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

    JFreeChart中有18Plot抽象類的具體實現類。Plot的具體實現類主要由以下重要對象組成:Renderer對象(圖形的繪制單元——繪圖域),Datset(圖形的數據源),DomainAxis(區域軸,相當于x軸),RangeAxis(范圍軸,相當于y軸)。

    不同的Plot對象組成方式不盡相同,有的不含有Renderer對象,比如CompassPlotContourPlotMultiplePiePlotPiePlot等,有的不含有DomainAxisRangeAxis對象,另外除了FastScatterPlot類都含有Datset對象,FastScatterPlot使用float的二維數組充當數據源。尤其說明一點,餅狀圖相關的Plot對象(MultiplePiePlotPiePlotPiePlot3DRingPlot)中都不含有Renderer對象、DomainAxis對象、RangeAxis對象。

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


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

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

    2.3.1 Renderer對象

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

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

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

    2.3.2 Axis對象

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

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

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

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

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

    2.4 子標題對象

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

    2.5數據源處理

    JFreeChart中的數據源是DataSet接口類型。該接口有三個主要的子類接口:CategoryDataset、PieDataset、SeriesDataset

    CategoryDataset接口的實現類基本上都維護了一個三元組<value,row,col>的列表結構。不同的實現類中value的類型不相同。<row,col>唯一確定一個三元組。CategoryDataset的實現類提供對這個三元組的增刪改查操作。

    PieDataset接口有兩個主要的實現類:CategoryToPieDataset、DefaultPieDataset。

    SeriesDataset接口的實現類基本上都維護了一種特定數據結構的列表。以TimeSeriesCollection為例。它維護一個TimeSeries對象列表,提供對該列表的增刪查操作。每個TimeSeries對象維護一個<time,value>列表,提供對該列表的增刪改查操作。

    posted on 2010-07-20 20:29 donghang73 閱讀(1516) 評論(0)  編輯  收藏 所屬分類: 學習筆記
    主站蜘蛛池模板: 宅男666在线永久免费观看| 青青视频观看免费99| 亚洲?V无码乱码国产精品 | 57PAO成人国产永久免费视频| 亚洲成色WWW久久网站| 最好看的中文字幕2019免费| 亚洲AV无码一区二区三区系列 | 亚洲www77777| 无码精品A∨在线观看免费| 亚洲乱码一区av春药高潮| 无码日韩人妻av一区免费| 亚洲乱码无人区卡1卡2卡3| 国产成人免费福利网站| 午夜在线免费视频 | 亚洲黑人嫩小videos| 日本在线高清免费爱做网站| 亚洲AV成人一区二区三区在线看| 日本v片免费一区二区三区| 男女交性无遮挡免费视频| 亚洲无线观看国产精品| 免费观看国产网址你懂的| 亚洲日韩乱码中文字幕| 日韩一卡2卡3卡4卡新区亚洲| 国产精品视频白浆免费视频| 亚洲国产综合精品| 国产精品免费视频一区| 热99RE久久精品这里都是精品免费| 亚洲AV成人片色在线观看 | 91免费国产在线观看| 国产精品久久久久久亚洲影视| 国产亚洲精品a在线观看| 欧洲精品99毛片免费高清观看| 中文字幕亚洲精品无码| 亚洲永久精品ww47| 日韩欧美一区二区三区免费观看| 直接进入免费看黄的网站| 亚洲AV乱码一区二区三区林ゆな| 在线看片人成视频免费无遮挡| 一个人看的www免费在线视频| 亚洲精品电影在线| 亚洲免费在线观看|