<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 閱讀(1515) 評論(0)  編輯  收藏 所屬分類: 學習筆記
    主站蜘蛛池模板: 免费看大美女大黄大色| 亚洲一区二区三区香蕉| 又黄又大的激情视频在线观看免费视频社区在线 | 亚洲尤码不卡AV麻豆| 97在线视频免费播放| 亚洲日本VA午夜在线电影| 波多野结衣免费视频观看| 热99RE久久精品这里都是精品免费| 日韩亚洲AV无码一区二区不卡| 免费观看a级毛片| 成人免费777777被爆出| 亚洲剧情在线观看| 亚洲午夜福利精品无码| 4hu四虎最新免费地址| jizz免费在线观看| 亚洲午夜精品一区二区公牛电影院| 国产精品va无码免费麻豆| 七色永久性tv网站免费看| 在线观看亚洲电影| 亚洲成AV人片久久| 国产亚洲精品不卡在线| 成人性生交视频免费观看| 99在线热播精品免费99热| 国产AV无码专区亚洲AV蜜芽| 亚洲天天做日日做天天看| 亚洲精品老司机在线观看| 亚洲成在人线aⅴ免费毛片| 四虎免费大片aⅴ入口| 亚洲sm另类一区二区三区| 日本亚洲视频在线| 亚洲av午夜成人片精品电影 | 无码国产精品一区二区免费模式| 亚洲AV一区二区三区四区| 亚洲午夜免费视频| 久久精品国产亚洲Aⅴ蜜臀色欲| 毛片基地免费视频a| 99爱在线精品视频免费观看9| 一道本在线免费视频| 亚洲精品动漫免费二区| 亚洲精品国产免费| 亚洲AV美女一区二区三区|