超級好用的 Java 資料視覺化庫:Tablesaw
本文適合剛學習完 Java 語言基礎的人群,跟著本文可瞭解和使用 Tablesaw 專案。示例均在 Windows 作業系統下演示
本文作者:HelloGitHub-秦人
HelloGitHub 推出的《講解開源專案》系列,今天給大家帶來一款基於 Java 語言的資料視覺化庫開源專案——Tablesaw
Tablesaw是一款 Java 的資料視覺化庫。它主要包括兩部分:一部分是資料解析庫,另一部分是資料視覺化庫。資料解析庫主要是載入資料,對資料進行操作(轉化,過濾,彙總等)。資料視覺化庫就是將目標資料轉化為視覺化的圖表。
專案原始碼地址:https://github.com/jtablesaw/tablesaw
一、專案結構
目錄說明:
- aggregate:maven 的專案父級專案,主要定義專案打包的配置。
- beakerx:tablesaw 庫的註冊中心,主要登錄檔和列。
- core:tablesaw 庫的核心程式碼,主要是資料的加工處理操作:資料的追加,排序,分組,查詢等。
- data:專案測試資料目錄。
- docs:專案 MarkDown 文件目錄。
- docs-src:專案文件原始碼目錄,主要作用是生成 MarkDown 文件。
- excel:解析 excel 檔案資料的子專案。
- html:解析 html 檔案資料的子專案。
- json:解析 json 檔案資料的子專案。
- jsplot:資料視覺化的子專案,主要作用載入資料生成視覺化圖表。
- 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 庫是個不錯的選擇!
『講解開源專案系列』——讓對開源專案感興趣的人不再畏懼、讓開源專案的發起者不再孤單。跟著我們的文章,你會發現程式設計的樂趣、使用和發現參與開源專案如此簡單。歡迎留言聯絡我們、加入我們,讓更多人愛上開源、貢獻開源