- JFreeChart 教程
- JFreeChart - 首頁
- JFreeChart - 概述
- JFreeChart - 安裝
- JFreeChart - 架構
- JFreeChart - 參考 API
- JFreeChart - 餅圖
- JFreeChart - 條形圖
- JFreeChart - 折線圖
- JFreeChart - XY 圖
- JFreeChart - 3D 圖表/條形圖
- JFreeChart - 氣泡圖
- JFreeChart - 時間序列圖
- JFreeChart - 檔案介面
- JFreeChart - 資料庫介面
- JFreeChart 有用資源
- JFreeChart - 快速指南
- JFreeChart - 有用資源
- JFreeChart - 討論
JFreeChart - 參考 API
本章將討論 JFreeChart 庫中一些重要的包、類和方法。在使用 JFreeChart 庫建立各種圖表時,這些包、類和方法是最常用的。
ChartFactory 類
ChartFactory 是org.jfree.chart包下的一個抽象類。它提供了一組用於生成標準圖表的實用程式方法。
以下是幾個重要方法的列表:
類建構函式
| 序號 | 描述 |
|---|---|
| 1 | ChartFactory() ChartFactory 類的預設建構函式。 |
類方法
| 序號 | 方法及描述 |
|---|---|
| 1 | createPieChart(java.lang.String title, PieDataset dataset, boolean legend, boolean tooltips, boolean urls) 此方法使用預設設定建立一個餅圖。它返回 JfreeChart 型別物件。 |
| 2 | createPieChart3D(java.lang.String title, PieDataset dataset, boolean legend, boolean tooltips, boolean urls) 此方法使用指定的 dataset 建立一個 3D 餅圖。 |
| 3 | createBarChart(java.lang.String title, java.lang.String categoryAxisLabel, java.lang.String valueAxisLabel, CategoryDataset dataset, PlotOrientation orientation, boolean legend, boolean tooltips, boolean urls) 引數 java.lang.String categoryAxisLabel 是放置在 X 軸上的值的標籤。引數 java.lang.String valueAxisLabel 是放置在 Y 軸上的值的標籤。 此方法建立一個條形圖。 |
| 4 | createBarChart3D(java.lang.String title, java.lang.String categoryAxisLabel, java.lang.String valueAxisLabel, CategoryDataset dataset, PlotOrientation orientation, boolean legend, boolean tooltips, boolean urls) 此方法建立一個具有 3D 效果的條形圖。它返回 JfreeChart 型別物件。 |
| 5 | createLineChart(java.lang.String title, java.lang.String categoryAxisLabel, java.lang.String valueAxisLabel, CategoryDataset dataset, PlotOrientation orientation, boolean legend, boolean tooltips, boolean urls) 此方法使用預設設定建立一個折線圖。 |
| 6 | createLineChart3D(java.lang.String title, java.lang.String categoryAxisLabel, java.lang.String valueAxisLabel, CategoryDataset dataset, PlotOrientation orientation, boolean legend, boolean tooltips, boolean urls) 此方法建立一個具有 3D 效果的折線圖。 |
| 7 | createXYLineChart(java.lang.String title, java.lang.String xAxisLabel, java.lang.String yAxisLabel, XYDataset dataset, PlotOrientation orientation, boolean legend, boolean tooltips, boolean urls) 此方法基於 XYDataset 建立一個具有預設設定的折線圖。 |
ChartFrame 類
org.jfree.chart 包下的 ChartFrame 類提供了所有與框架相關的函式和實用程式。ChartFrame 類繼承自父類,例如 Frame、Window、Container 和 Component 類。
類建構函式
| 序號 | 建構函式和描述 |
|---|---|
| 1 | ChartFrame (java.lang.Frame String, JfreeChart chart) 它構造一個框架。 |
| 2 | ChartFrame (java.lang.Frame String, JfreeChart chart, boolean scrollpane) 它構造一個框架。 |
類方法
| 序號 | 方法和描述 |
|---|---|
| 1 | getChartPanel() 此方法返回框架的圖表面板。 |
ChartPanel 類
來自org.jfree.chart包的 ChartPanel 類用作 Swing GUI 元件,用於顯示 JfreeChart 物件。
類建構函式
| 序號 | 建構函式和描述 |
|---|---|
| 1 | ChartPanel(JFreeChart chart) 此建構函式構造一個顯示指定圖表的 panel。 |
| 2 | ChartPanel(JFreeChart chart, boolean useBuffer) 此建構函式構造一個包含圖表的 panel。 |
| 3 | ChartPanel(JFreeChart chart, boolean properties, boolean save, boolean print, boolean zoom, boolean tooltips) 此建構函式構造一個 JFreeChart panel。 |
類方法
| 序號 | 方法和描述 |
|---|---|
| 1 | setPreferredSize(java.awt.Dimension) 此方法用於使用 java.awt.Dimension 類物件作為引數來設定框架大小。此方法取自 javax.swing.JComponent。 |
ChartUtilities 類
來自org.jfree.chart包的 CharUtilites 類提供了一組 JFreeCharts 的實用程式方法,包括將圖表轉換為影像檔案格式(如 PNG、JPEG)以及建立 HTML 影像地圖的方法。
類建構函式
| 序號 | 建構函式和描述 |
|---|---|
| 1 | ChartUtilities() 這是類的預設建構函式 |
類方法
| 序號 | 方法和描述 |
|---|---|
| 1 | saveChartAsPNG(java.io.File file, JfreeChart chart, int width, int height) 此方法將圖表轉換為 PNG 格式並儲存到指定檔案。 |
| 2 | saveChartAsJPEG(java.io.File file, JfreeChart chart, int width, int height) 此方法將圖表轉換為 JPEG 格式並儲存到指定檔案。 |
JFreeChart 類
JFreeChart 類是org.jfree.chart包下的核心類。此類提供 JFreeChart 方法來建立條形圖、折線圖、餅圖和 xy 圖,包括時間序列資料。
類建構函式
| 序號 | 建構函式和描述 |
|---|---|
| 1 | JfreeChart(Plot plot) 此建構函式基於提供的 plot 建立一個新圖表。 |
| 2 | JfreeChart(java.lang.String title, java.awt.Font titleFont, Plot plot, boolean createLegend) 此建構函式使用給定的標題和 plot 建立一個新圖表。 |
| 3 | JfreeChart(java.lang.String title, Plot plot) 此建構函式使用給定的標題和 plot 建立一個新圖表。 |
類方法
| 序號 | 方法和描述 |
|---|---|
| 1 | getXYPlot() 此方法將圖表 plot 作為XYPlot返回。使用 XYPolt,我們可以對 xy 圖表進行一些實用程式操作。 |
PiePlot 類
此類是org.jfree.chart.plot包的一部分,並擴充套件了同一包中的 Plot 類。此類提供建立餅圖的方法。
類建構函式
| 序號 | 建構函式和描述 |
|---|---|
| 1 | PiePlot() 它建立一個新的 plot。 |
| 2 | PiePlot(PieDataset dataset) 它建立一個繪製指定資料集餅圖的 plot。 |
類方法
| 序號 | 方法和描述 |
|---|---|
| 1 | setStartAngle(double angle) 此方法設定起始角度並向所有註冊的監聽器傳送 PlotChangeEvent。 |
PiePlot3D 類
PiePlot3D 類是同一包下 PiePlot 類的子類。因此,此類具有與 PiePlot 類相同的特性,只是它用於建立 3D 圖表。
類建構函式
| 序號 | 建構函式和描述 |
|---|---|
| 1 | PiePlot3D() 此建構函式建立一個沒有資料集的新例項。 |
| 2 | PiePlot3D(PieDataset dataset) 此建構函式使用指定的資料集建立一個具有三維效果的餅圖。 |
類方法
| 序號 | 方法和描述 |
|---|---|
| 1 | setForegroundAlpha(float alpha) 它設定圖表的 alpha 透明度,並向所有註冊的監聽器傳送 PlotChangeEvent。這取自父類 Plot 類之一。 |
| 2 | setInteriorGap(double percent) 它設定內部間隙並向所有註冊的監聽器傳送 PlotChangeEvent。這控制餅圖邊緣和繪圖區域本身(即節標籤顯示的區域)之間的空間。此方法取自父類 PiePlot。 |
PlotOrientation 類
這是一個可用於org.jfree.chart.plot包中的序列化類,用於顯示二維圖表的方位。方位可以是垂直或水平。它設定 Y 軸的方位。常規圖表的 Y 軸是垂直的。
欄位摘要
| 序號 | 型別 | 欄位及描述 |
|---|---|---|
| 1 | PlotOrientation | HORIZONTAL 對於範圍軸(Y 軸)為水平的圖表。 |
| 2 | PlotOrientation | VERTICAL 對於範圍軸(Y 軸)為垂直的圖表。這是預設方位。 |
類方法
| 序號 | 方法和描述 |
|---|---|
| 1 | isHorizontal() 如果此方位為 HORIZONTAL,則此方法返回 true,否則返回 false。 |
| 2 | isVertical() 此方法如果此方位為 VERTICAL,則返回 true,否則返回 false。 |
XYPlot 類
這是一個可用於org.jfree.chart.plot包中的通用類,用於繪製 (x,y) 對形式的資料。此圖表可以使用實現 XYDataSet 介面的任何其他類的數 據。XYPlot 使用 XYItemRenderer 繪製圖表上的每個點。
類建構函式
| 序號 | 建構函式和描述 |
|---|---|
| 1 | XYPlot() 此建構函式建立一個沒有資料集、沒有軸和沒有渲染器的新 XYPlot 例項。 |
| 2 | XYPlot(XYDataset dataset, ValueAxis domainAxis, ValueAxis rangeAxis, XYItemRenderer renderer) 此建構函式使用指定的資料集、軸和渲染器建立一個新的 plot。 |
類方法
| 序號 | 方法和描述 |
|---|---|
| 1 | setRenderer(XYItemRenderer renderer) 此方法設定主資料集的渲染器,並向所有註冊的監聽器傳送更改事件。 |
NumberAxis 類
此類位於org.jfree.chart.axis包中,可以訪問任何軸的數值資料。當我們將任何軸的範圍設定為預設值時,它會根據資料的範圍進行調整。但是,使用 NumberAxis 類,我們可以設定域和範圍軸的下限和上限。
類建構函式
| 序號 | 建構函式和描述 |
|---|---|
| 1 | NumberAxis( ) 這是 NumberAxis 的預設建構函式。 |
| 2 | NumberAxis( java.lang.String label) 建構函式 NumberAxis 在必要時使用預設值。 |
類方法
| 序號 | 方法和描述 |
|---|---|
| 1 | setLowerMargin(double margin) 它設定軸的下限(作為軸範圍的百分比),並向所有註冊的監聽器傳送AxisChangeEvent。此方法取自 ValueAxis 類的父類。 |
| 2 | setUpperMargin(double margin) 它設定軸的上限(作為軸範圍的百分比),並向所有註冊的監聽器傳送AxisChangeEvent。此方法也存在於 ValueAxis 類中。 |
XYLineAndShapeRenderer 類
這是位於org.jfree.chart.renderer.xy包中的類,負責用線連線資料點並在每個資料點處繪製形狀。此渲染器類旨在與XYPlot類一起使用。
類建構函式
| 序號 | 建構函式及描述 |
|---|---|
| 1 | XYLineAndShapeRenderer() 它建立一個新的渲染器,其中線條和形狀都可見。 |
| 2 | XYLineAndShapeRenderer (boolean lines, boolean shapes) 它建立一個具有特定屬性的新渲染器。 |
類方法
| 序號 | 方法和描述 |
|---|---|
| 1 | setSeriesPaint(int series, java.awt.Paint paint) 此方法設定用於系列的繪製顏色,並向所有註冊的監聽器傳送RendererChangeEvent。此方法取自 JFreeChart API 中 renderer 包的 AbstratRenderer 抽象類。 |
| 2 | setSeriesStroke(int series, java.awt.Stroke stroke) 此方法設定用於系列的筆觸,並向所有註冊的監聽器傳送RendererChangeEvent。此方法取自 AbstratRenderer 抽象類,它是此包的超類。 |
XYItemRenderer 通用資料集
這是用於渲染 XYPlot 上單個 (x, y) 專案格式的介面。該包是org.Jfree.data.general,其中包含用於定義不同型別的資料集以構建圖表的類和介面。
PieDataset
這是一個用作通用資料集的介面,其中值與鍵關聯。顧名思義,您可以使用此資料集為餅圖提供資料。此介面擴充套件了 KeyedValues 和 DataSet 介面。此介面使用的方法全部取自 KeyedValues、Values 和 Dataset 介面。
DefaultPieDataset 類
這是 PieDataset 介面的預設實現類。
類建構函式
| 序號 | 建構函式和描述 |
|---|---|
| 1 | DefaultPieDataset() 此建構函式建立一個新的資料集,最初為空。 |
| 2 | DefaultPieDataset(KeyedValues data) 它透過從KeyedValues例項複製資料來建立一個新的資料集。 |
類方法
| 序號 | 方法及描述 |
|---|---|
| 1 | setValue(java.lang.Comparable key, double value) 它設定鍵的資料值,並向所有註冊的監聽器傳送DatasetChangeEvent。 |
| 2 | setValue(java.lang.Comparable key, java.lang.Number value) 它設定鍵的資料值,並向所有註冊的監聽器傳送DatasetChangeEvent。 |
SeriesException 類
這是一個異常類。它引發在資料集資料時間序列中發生的異常。在出現重複或無效資料時會引發異常。時間序列不能應用重複項,並且格式必須有效。
DefaultCategoryDataset
這是 CategoryDataset 介面的預設實現類。
類建構函式
| 序號 | 建構函式和描述 |
|---|---|
| 1 | DefaultCategoryDataset() 此建構函式建立一個新的空資料集。 |
類方法
| 序號 | 方法和描述 |
|---|---|
| 1 | addValue(double value, java.lang.Comparable rowKey, java.lang.Comparable columnKey) 此方法使用可比較的鍵將值新增到表中。 |
| 2 | addValue(java.lang.Number value, java.lang.Comparable rowKey, java.lang.Comparable columnKey) 此方法向表格新增一個值。 |
| 3 | setValue(double value, java.lang.Comparable rowKey, java.lang.Comparable columnKey) 此方法新增或更新表格中的值,並向所有已註冊的監聽器傳送一個DatasetChangeEvent。 |
| 4 | setValue(java.lang.Number value, java.lang.Comparable rowKey, java.lang.Comparable columnKey) 此方法新增或更新表格中的值,並向所有已註冊的監聽器傳送一個DatasetChangeEvent。 |
有關其他各種方法和欄位的更多資訊,請參閱JFreeChart API。
系列資料集 (Series Datasets)
系列資料集由XY圖表使用。其包名為org.jfree.data.xy,包含屬於XY圖表的類和介面。核心介面是XYDataset。
XYDataset
這是一個介面,可以透過它訪問(x,y)項形式的資料。顧名思義,您可以使用此資料集來服務XY圖表。此介面中的某些方法取自SeriesDataset介面。
XYZDataset
這是一個介面,可以透過它訪問(x,y,z)項形式的資料。顧名思義,您可以使用此資料集來服務XYZ圖表。此介面中的某些方法取自SeriesDataset。
XYSeries
這是一個類,它表示(x, y)形式的零個或多個數據項的序列。預設情況下,系列中的項按x值升序排序,並允許重複的x值。排序和重複預設值都可以在建構函式中更改。Y值可以表示為null以表示缺失值。
類建構函式
| 序號 | 建構函式和描述 |
|---|---|
| 1 | XYSeries(java.lang.Comparable key) 此建構函式建立一個新的空系列。 |
| 2 | XYSeries(java.lang.Comparable key, boolean autoSort) 它構造一個新的空系列,自動排序標誌按要求設定,並允許重複值。 |
| 3 | XYSeries(java.lang.Comparable key, boolean autoSort, boolean allowDuplicateXValues) 它構造一個不包含任何資料的新的xy系列。 |
類方法
| 序號 | 方法和描述 |
|---|---|
| 1 | add(double x, double y) 此方法將資料項新增到系列中。 |
上述方法在教程示例中使用。如果您想了解其餘的方法和欄位,請參閱JFreeChart API。
XYSeriesCollection
XYSeriesCollection類具有諸如AbstractIntervalDataset、AbstractXYDataset、AbstractSeriesDataset和AbstractDataset之類的父類。此類中的某些方法屬於其父類。
類建構函式
| 序號 | 建構函式和描述 |
|---|---|
| 1 | XYSeriesCollection() 它構造一個空資料集。 |
| 2 | XYSeriesCollection(XYSeries xyseries) 它構造一個數據集並用單個系列填充它。 |
類方法
| 序號 | 方法和描述 |
|---|---|
| 1 | addSeries(XYSeries series) 此方法向集合新增一個系列,並向所有已註冊的監聽器傳送一個DatasetChangeEvent。 |
有關其餘方法和欄位,請參閱JFreeChart API。
預設XYZ資料集 (Default XYZDataset)
DefaultXYZDataset類具有諸如AbstractIntervalDataset、AbstractXYDataset、AbstractSeriesDataset、AbstractDataset和AbstractXYZDataset之類的父類。此類中的某些方法屬於其父類。
類建構函式
| 序號 | 建構函式和描述 |
|---|---|
| 1 | DefaultXYZDataset() 它構造一個空資料集。 |
類方法
| 序號 | 方法和描述 |
|---|---|
| 1 | addSeries(java.lang.Comparable seriesKey, double[][] data) 此方法向集合新增一個系列,並向所有已註冊的監聽器傳送一個DatasetChangeEvent。 |
有關其餘方法和欄位,請參閱JFreeChart API。
JFreeCharts中的時間序列 (Time Series in JFreeCharts)
其包名為org.jfree.data.time。此包包含用於時間相關資料的類和介面。
TimeSeries
此類表示週期值形式的資料項序列,其中週期是RegularTimePeriod抽象類的某個例項,例如Time、Day、Hour、Minute和Second類。
類建構函式
| 序號 | 建構函式和描述 |
|---|---|
| 1 | TimeSeries(java.lang.Comparable name) 它建立一個新的空系列。 |
| 2 | TimeSeries(java.lang.Comparable name, java.lang.String domain, java.lang.String range) 它建立一個不包含任何資料的新時間序列。 |
類方法
| 序號 | 方法和描述 |
|---|---|
| 1 | add(RegularTimePeriod period, double value) 此方法向系列新增一個新的資料項。 |
有關其餘方法和欄位,請參閱JFreeChart API。
TimeSeriesCollection
這是一個用作時間序列物件集合的類。此類實現了XYDataset介面,並擴充套件了IntervalXYDataset介面。這使得收集系列資料物件非常方便。
類建構函式
| 序號 | 建構函式和描述 |
|---|---|
| 1 | TimeSeriesCollection() 它構造一個空資料集,繫結到預設時區。 |
| 2 | TimeSeriesCollection(TimeSeries series) 它構造一個包含單個系列(可以新增更多)的資料集,繫結到預設時區。 |
| 3 | TimeSeriesCollection(TimeSeries series, java.util.TimeZone zone) 它構造一個包含單個系列(可以新增更多)的資料集,繫結到特定時區。 |
| 4 | TimeSeriesCollection(java.util.TimeZone zone) 它構造一個空資料集,繫結到特定時區。 |
類方法
| 序號 | 方法和描述 |
|---|---|
| 1 | addSeries(TimeSeries series) 此方法向集合新增一個系列,並向所有已註冊的監聽器傳送一個DatasetChangeEvent。 |
有關其餘方法和欄位,請參閱JFreeChart API。
Second
此類表示特定日期中的秒。此類是不可變的,這是所有RegularTimePeriod子類的要求。
類建構函式
| 序號 | 建構函式和描述 |
|---|---|
| 1 | Second() 它基於系統日期/時間構造一個新的Second。 |
| 2 | Second(java.util.Date time) 它根據指定的日期/時間和預設時區構造一個新的例項。 |
| 3 | Second(java.util.Date time, java.util.TimeZone zone, java.util.Locale locale) 它根據提供的日期時間和時區建立一個新的秒。 |
| 4 | Second(int second, int minute, int hour, int day, int month, int year) 它建立一個新的秒。 |
| 5 | Second(int second, Minute minute) 它構造一個新的Second。 |
類方法
| 序號 | 方法和描述 |
|---|---|
| 1 | getSecond() 它返回分鐘內的秒。 |
| 2 | next() 它返回當前秒之後的下一秒。 |
有關其餘方法和欄位,請參閱JFreeChart API。
JFreeCharts中的框架 (Frames in JFreeCharts)
其包名為org.jfree.ui。這是屬於JFreeChart的JCommons API的包。它包含用於為預配置圖表建立框架的實用程式類。
ApplicationFrame
這是為簡單的應用程式建立主框架的基類。框架偵聽視窗關閉事件,並透過關閉JVM來響應。對於小型演示應用程式來說,這很好。對於企業應用程式,您需要使用更強大的東西。此類中的主要核心方法取自Component、Container、Window、Frame和JFrame類。
類建構函式
| 序號 | 建構函式及描述 |
|---|---|
| 1 | ApplicationFrame(java.lang.String title) 它使用字串標題建立一個應用程式框架。 |
此類有助於建立AWT框架。這就是為什麼我們在本教程示例中使用此類作為超類的理由。
從父類繼承的方法用於開啟框架、關閉框架、更改大小、更改背景或前景顏色以及監聽器。
RefineryUtilities
這是一個與使用者介面相關的實用程式方法集合類。
類方法
| 序號 | 方法和描述 |
|---|---|
| 1 | centerFrameOnScreen(java.awt.Window frame) 它將指定的框架定位在螢幕的中間。 |
上述方法在教程示例中使用。有關其餘方法和欄位,請參閱JFreeChart API。