1. 程式人生 > >超級好用的 Java 資料視覺化庫:Tablesaw

超級好用的 Java 資料視覺化庫:Tablesaw

本文適合剛學習完 Java 語言基礎的人群,跟著本文可瞭解和使用 Tablesaw 專案。示例均在 Windows 作業系統下演示

本文作者:HelloGitHub-秦人

HelloGitHub 推出的《講解開源專案》系列,今天給大家帶來一款基於 Java 語言的資料視覺化庫開源專案——Tablesaw

Tablesaw是一款 Java 的資料視覺化庫。它主要包括兩部分:一部分是資料解析庫,另一部分是資料視覺化庫。資料解析庫主要是載入資料,對資料進行操作(轉化,過濾,彙總等)。資料視覺化庫就是將目標資料轉化為視覺化的圖表。

專案原始碼地址:https://github.com/jtablesaw/tablesaw

一、專案結構

目錄說明:

  1. aggregate:maven 的專案父級專案,主要定義專案打包的配置。
  2. beakerx:tablesaw 庫的註冊中心,主要登錄檔和列。
  3. core:tablesaw 庫的核心程式碼,主要是資料的加工處理操作:資料的追加,排序,分組,查詢等。
  4. data:專案測試資料目錄。
  5. docs:專案 MarkDown 文件目錄。
  6. docs-src:專案文件原始碼目錄,主要作用是生成 MarkDown 文件。
  7. excel:解析 excel 檔案資料的子專案。
  8. html:解析 html 檔案資料的子專案。
  9. json:解析 json 檔案資料的子專案。
  10. jsplot:資料視覺化的子專案,主要作用載入資料生成視覺化圖表。
  11. saw:tablesaw 讀寫圖表資料的子專案。

二、實戰操作

2.1 準備工作

專案中引入 Tablesaw 依賴包

<dependency>
    <groupId>tech.tablesaw</groupId>
    <artifactId>tablesaw-core</artifactId>
    <version>LATEST</version>
</dependency>

2.2 資料解析

2.2.1 內部資料製作資料表格

@Test
public void tableSawTest6() {
    String[] students = {"小明", "李雷", "小二"};
    double[] scores = {90.1, 84.3, 99.7};
    Table table = Table.create("學生分數統計表").addColumns(
                    StringColumn.create("姓名", students),
                    DoubleColumn.create("分數", scores));
    System.out.println(table.print());
}

程式碼超級簡單,首先定義要展示列資料 students 和 scores。然後建立資料展示的 table 定義表格名稱,新增表格列資料即可。

效果展示如下:

2.2.2 載入資料檔案製作資料表格

@Test
public void tableSawTest10() throws Exception{
    Table table = Table.read().csv("/data/bush.csv");
    Table whoPercents = table.xTabPercents("who");
    whoPercents.columnsOfType(ColumnType.DOUBLE)
    .forEach(x -> ((NumberColumn) x).setPrintFormatter(
        NumberColumnFormatter.percent(0)));
    System.out.println(whoPercents.toString());
}

首先 Table.read 載入資料檔案,載入資料支援 csv、資料庫結果集、檔案、URL 等

指定表格 x 軸的欄位,並對 資料進行百分比資料的轉化。

bash.csv 檔案內容如下:

執行效果如下:

2.3 資料視覺化

Table robberies = Table.read().csv("./data/boston-robberies.csv");
Plot.show(
    AreaPlot.create(
        "Boston Robberies by month: Jan 1966-Oct 1975", 
        robberies, "Record", "Robberies"));

首先載入資料 Table.read,繪製圖表 AreaPlot.create ,然後 Plot.show 在本地生成圖表的 html 頁面,自動開啟瀏覽器顯示。

boston-robberies.csv 檔案內容如下:

執行效果如下:

Tablesaw 還可以繪製出很多種類的圖表,期待你的發掘。

三、最後

教程至此,你應該對 Tablesaw 有一個簡單的瞭解。這裡告訴大家一個方法,可以快速掌握開源庫:在原始碼中找專案的單元測試程式碼。然後,我們再將專案匯入開發工具,直接執行專案中的單元測試。 這是可能是最快捷、有效的掌握、上手開源庫的方法。

本教程是針對有一定 Java 程式設計基礎,如果你的專案正好需要資料視覺化的庫,Tablesaw 庫是個不錯的選擇!


『講解開源專案系列』——讓對開源專案感興趣的人不再畏懼、讓開源專案的發起者不再孤單。跟著我們的文章,你會發現程式設計的樂趣、使用和發現參與開源專案如此簡單。歡迎留言聯絡我們、加入我們,讓更多人愛上開源、貢獻開源