超級好用的 Java 數據可視化庫:Tablesaw

  • 2019 年 10 月 23 日
  • 筆記

本文適合剛學習完 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 庫是個不錯的選擇!


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