本文適合剛學習完 Java 語言基礎的人羣,跟着本文可瞭解和使用 Tablesaw 項目。示例均在 Windows 操做系統下演示html
本文做者:HelloGitHub-秦人java
HelloGitHub 推出的《講解開源項目》系列,今天給你們帶來一款基於 Java 語言的數據可視化庫開源項目——Tablesawgit
Tablesaw是一款 Java 的數據可視化庫。它主要包括兩部分:一部分是數據解析庫,另外一部分是數據可視化庫。數據解析庫主要是加載數據,對數據進行操做(轉化,過濾,彙總等)。數據可視化庫就是將目標數據轉化爲可視化的圖表。程序員
項目源碼地址:https://github.com/jtablesaw/tablesawgithub
1、項目結構
目錄說明:數據庫
- aggregate:maven 的項目父級項目,主要定義項目打包的配置。
- beakerx:tablesaw 庫的註冊中心,主要註冊表和列。
- core:tablesaw 庫的核心代碼,主要是數據的加工處理操做:數據的追加,排序,分組,查詢等。
- data:項目測試數據目錄。
- docs:項目 MarkDown 文檔目錄。
- docs-src:項目文檔源碼目錄,主要做用是生成 MarkDown 文檔。
- excel:解析 excel 文件數據的子項目。
- html:解析 html 文件數據的子項目。
- json:解析 json 文件數據的子項目。
- jsplot:數據可視化的子項目,主要做用加載數據生成可視化圖表。
- saw:tablesaw 讀寫圖表數據的子項目。
2、實戰操做
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 定義表格名稱,添加表格列數據便可。json
效果展現以下:瀏覽器
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 等bash
指定表格 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 還能夠繪製出不少種類的圖表,期待你的發掘。
3、最後
教程至此,你應該對 Tablesaw 有一個簡單的瞭解。這裏告訴你們一個方法,能夠快速掌握開源庫:在源碼中找項目的單元測試代碼。而後,咱們再將項目導入開發工具,直接運行項目中的單元測試。 這是多是最快捷、有效的掌握、上手開源庫的方法。
本教程是針對有必定 Java 編程基礎,若是你的項目正好須要數據可視化的庫,Tablesaw 庫是個不錯的選擇!
『講解開源項目系列』——讓對開源項目感興趣的人再也不畏懼、讓開源項目的發起者再也不孤單。跟着咱們的文章,你會發現編程的樂趣、使用和發現參與開源項目如此簡單。歡迎留言聯繫咱們、加入咱們,讓更多人愛上開源、貢獻開源~
本文分享 CNBlog - 削微寒的程序員之路。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。