基於SWT的Java圖表類庫SWTChart

2014-10-25    分類:開源軟體、報表/圖表元件、程式設計開發、首頁精華0人評論發表於2014-10-25

本文由碼農網 – 小峰原創,轉載請看清文末的轉載要求,歡迎參與我們的付費投稿計劃

SWTChart是一款基於SWT的Java圖表類庫,也正因為是基於SWT的緣故,SWTChart應用起來非常方便,而且也相當輕巧。

SWTChart支援多種圖表型別,包括:線圖 、散點圖 、堆疊圖 、對數標度 、分類軸 、多軸 、柱形圖 、面積圖 、步驟圖 、軸取向 、系列標籤等。

高可擴充套件性

所有SWTChart小部件是基於SWT的,這樣就可以輕鬆實現視窗小部件,也可以很容易地擴充套件功能。作為SWTChart一個例子,SWTChart Extension與SWTChart捆綁在一起,這樣你就可以得到一些想法如何擴充套件它。 SWTChart Extension有滑鼠縮放,或者用方向鍵翻頁的功能。當然,除了一些公共的API外,我們也可以直接定製SWTChart,因為SWTChart是完全開源的。

高效能

SWTChart提供處理一系列大資料的能力。即使出百萬個資料點,重新繪製或調整圖表皮膚並不需要很長一段時間。內部演算法不是簡單地以一定時間間隔取樣資料,而是根據當前螢幕解析度來計算需要顯示多少個點。因此,即使有在大量的資料點,也不會再螢幕上不顯示。

輕量級

SWTChart具有輕量級的基本特點。 SWTChart jar檔案的檔案大小約為180KB,包括原始碼。這很容易讓你釋出你的應用程式。

使用方法

SWTChart繪製線形圖

// create a chart
Chart chart = new Chart(composite, SWT.NONE);

// set titles
chart.getTitle().setText("Line Chart Example");
chart.getAxisSet().getXAxis(0).getTitle().setText("Data Points");
chart.getAxisSet().getYAxis(0).getTitle().setText("Amplitude");

// create line series
ILineSeries lineSeries = (ILineSeries) chart.getSeriesSet()
    .createSeries(SeriesType.LINE, "line series");
lineSeries.setYSeries(ySeries);

// adjust the axis range
chart.getAxisSet().adjustRange();

SWTChart繪製柱形圖:

// create a chart
Chart chart = new Chart(composite, SWT.NONE);

// set titles
chart.getTitle().setText("Bar Chart Example");
chart.getAxisSet().getXAxis(0).getTitle().setText("Data Points");
chart.getAxisSet().getYAxis(0).getTitle().setText("Amplitude");

// create bar series
IBarSeries barSeries = (IBarSeries) chart.getSeriesSet()
    .createSeries(SeriesType.BAR, "bar series");
barSeries.setYSeries(ySeries);

// adjust the axis range
chart.getAxisSet().adjustRange();

SWTChart繪製堆疊圖:

// create a chart
Chart chart = new Chart(composite, SWT.NONE);

// set titles
chart.getTitle().setText("Stack Series Example");
chart.getAxisSet().getXAxis(0).getTitle().setText("Month");
chart.getAxisSet().getYAxis(0).getTitle().setText("Amplitude");

// set category
chart.getAxisSet().getXAxis(0).enableCategory(true);
chart.getAxisSet().getXAxis(0).setCategorySeries(
        new String[] { "Jan", "Feb", "Mar", "Apr", "May" });

// create bar series
IBarSeries barSeries1 = (IBarSeries) chart.getSeriesSet().createSeries(
        SeriesType.BAR, "bar series 1");
barSeries1.setYSeries(ySeries1);
barSeries1.setBarColor(Display.getDefault().getSystemColor(
                SWT.COLOR_GREEN));

IBarSeries barSeries2 = (IBarSeries) chart.getSeriesSet().createSeries(
        SeriesType.BAR, "bar series 2");
barSeries2.setYSeries(ySeries2);

// enable stack series
barSeries1.enableStack(true);
barSeries2.enableStack(true);

// adjust the axis range
chart.getAxisSet().adjustRange();

SWTChart還可以繪製更多的圖表型別,具體可以閱讀SWTChart的官方文件,可以在文末的連結中獲取。

本文連結:http://www.codeceo.com/article/swt-java-swtchart.html
本文作者:碼農網 – 小峰
原創作品,轉載必須在正文中標註並保留原文連結和作者等資訊。]

相關文章