Tablesaw是一個(gè)JAVA軟件,可以用于數(shù)據(jù)科學(xué)的研究學(xué)習(xí),軟件中包含了一個(gè)數(shù)據(jù)框架和可視化庫(kù),軟件中為用戶(hù)提供了加載、轉(zhuǎn)換、過(guò)濾等工具,可以讓用戶(hù)放心的進(jìn)行數(shù)據(jù)的分析,軟件主要包含兩部分,一部分是數(shù)據(jù)解析,還有數(shù)據(jù)的可視化,都可以讓你更好的進(jìn)行數(shù)據(jù)分析。
軟件介紹
Tablesaw是一個(gè)用于數(shù)據(jù)科學(xué)的Java軟件,它包括一個(gè)數(shù)據(jù)框架和可視化庫(kù),以及用于加載、轉(zhuǎn)換、過(guò)濾和總結(jié)數(shù)據(jù)的工具,它的速度很快,而且很注意內(nèi)存。數(shù)據(jù)解析庫(kù)主要是加載數(shù)據(jù),對(duì)數(shù)據(jù)進(jìn)行操作(轉(zhuǎn)化,過(guò)濾,匯總等)。數(shù)據(jù)可視化庫(kù)就是將目標(biāo)數(shù)據(jù)轉(zhuǎn)化為可視化的圖表。
軟件特色
數(shù)據(jù)處理和轉(zhuǎn)換
從RDBMS、Excel、CSV、JSON、HTML或Fixed Width文本文件導(dǎo)入數(shù)據(jù),無(wú)論它們是本地的還是遠(yuǎn)程的(http、S3等)。
將數(shù)據(jù)導(dǎo)出到CSV、JSON、HTML或固定寬度文件。
通過(guò)追加或連接來(lái)合并表格
添加和刪除列或行
排序、分組、查詢(xún)
地圖/縮減操作
處理缺失值
怎么用
很多的用戶(hù)第一次使用這種類(lèi)型的軟件,不知道軟件的操作方法,用戶(hù)需要用到代碼,進(jìn)行圖表的創(chuàng)建,然后還要在代碼中進(jìn)行數(shù)據(jù)的分析,下面小編為大家?guī)?lái)軟件的使用方法介紹。讓你可以掌握軟件的基本使用方法。
1、導(dǎo)入Tablesaw
gradle
//tablesaw 庫(kù)的核心代碼,主要是數(shù)據(jù)的加工處理操作:數(shù)據(jù)的追加,排序,分組,查詢(xún)等
implementation "tech.tablesaw:tablesaw-core:0.38.1"
//數(shù)據(jù)可視化的子項(xiàng)目,主要作用加載數(shù)據(jù)生成可視化圖表
implementation "tech.tablesaw:tablesaw-jsplot:0.38.1"
maven
2、創(chuàng)建圖表
2.1、方式一
//獲取數(shù)據(jù)并創(chuàng)建記錄表格
Table table = Table.create("動(dòng)環(huán)狀態(tài)記錄表").addColumns(
StringColumn.create("時(shí)間",times),
//這里注意了要是想數(shù)據(jù)圖中顯示的數(shù)據(jù)為真實(shí)的數(shù)據(jù),則需要用DoubleColumn等Number型對(duì)象
DoubleColumn.create(EnvTypeInfo.getEnvTypeName(envType),values));
2.2、方式二
//直接讀csv文件,獲取數(shù)據(jù)
Table table = Table.read().csv(filepath);
3、創(chuàng)建折線(xiàn)圖
Plot.show(
TimeSeriesPlot.create(
EnvTypeInfo.getEnvTypeName(envType)+"變化時(shí)間序列圖",//折線(xiàn)圖名稱(chēng)
/**
* table:數(shù)據(jù)來(lái)源
* "時(shí)間":x軸,名稱(chēng)必須要和table中的一個(gè)字段相對(duì)應(yīng)
* EnvTypeInfo.getEnvTypeName(envType):y軸,名稱(chēng)必須要和table中的一個(gè)字段相對(duì)應(yīng)
**/
table, "時(shí)間", EnvTypeInfo.getEnvTypeName(envType)));
這里注意了,源碼中Plot會(huì)執(zhí)行系統(tǒng)默認(rèn)瀏覽器,打開(kāi)生成的html文件。
但是,由于配置原因這里很容易出現(xiàn)瀏覽器不支持的問(wèn)題,這是由于程序默認(rèn)往往在Headless模式下工作,此時(shí)默認(rèn)是系統(tǒng)環(huán)境缺少了顯示設(shè)備、鍵盤(pán)或鼠標(biāo)。解決這種問(wèn)題有兩種方法。
數(shù)據(jù)解析教程
軟件的一大功能就是數(shù)據(jù)解析,通過(guò)用戶(hù)導(dǎo)入的數(shù)據(jù)來(lái)進(jìn)行數(shù)據(jù)表格的制作,將內(nèi)部數(shù)據(jù)全部集成到表格內(nèi)容中,然后將你的數(shù)據(jù)加載到表格中,就可以完成數(shù)據(jù)的解析了。
內(nèi)部數(shù)據(jù)制作數(shù)據(jù)表格
@Test
public void tableSawTest6() {
String[] students = {"小明", "李雷", "小二"};
double[] scores = {90.1, 84.3, 99.7};
Table table = Table.create("學(xué)生分?jǐn)?shù)統(tǒng)計(jì)表").addColumns(
StringColumn.create("姓名", students),
DoubleColumn.create("分?jǐn)?shù)", scores));
System.out.println(table.print());
}
代碼超級(jí)簡(jiǎn)單,首先定義要展示列數(shù)據(jù) students 和 scores。然后創(chuàng)建數(shù)據(jù)展示的 table 定義表格名稱(chēng),添加表格列數(shù)據(jù)即可。
效果展示如下:
加載數(shù)據(jù)文件制作數(shù)據(jù)表格
@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 加載數(shù)據(jù)文件,加載數(shù)據(jù)支持 csv、數(shù)據(jù)庫(kù)結(jié)果集、文件、URL 等
指定表格 x 軸的字段,并對(duì) 數(shù)據(jù)進(jìn)行百分比數(shù)據(jù)的轉(zhuǎn)化。
bash.csv 文件內(nèi)容如下:
運(yùn)行效果如下:
數(shù)據(jù)可視化
軟件中可以對(duì)數(shù)據(jù)進(jìn)行處理,讓數(shù)據(jù)可視化,更加直觀(guān)的看到數(shù)據(jù)的變化情況,方便用戶(hù)進(jìn)行后續(xù)的數(shù)據(jù)處理,很多的用戶(hù)在數(shù)據(jù)導(dǎo)入之后,不知道后續(xù)怎么處理,怎么樣才能對(duì)數(shù)據(jù)進(jìn)行可視化處理,下面小編為大家?guī)?lái)方法介紹。
Table robberies = Table.read().csv("./data/boston-robberies.csv");
Plot.show(
AreaPlot.create(
"Boston Robberies by month: Jan 1966-Oct 1975",
robberies, "Record", "Robberies"));
首先加載數(shù)據(jù) Table.read,繪制圖表 AreaPlot.create ,然后 Plot.show 在本地生成圖表的 html 頁(yè)面,自動(dòng)打開(kāi)瀏覽器顯示。
boston-robberies.csv 文件內(nèi)容如下:
運(yùn)行效果如下:
Tablesaw 還可以繪制出很多種類(lèi)的圖表,期待你的發(fā)掘。
更新日志
特點(diǎn)
創(chuàng)建氣泡圖的更多選項(xiàng) (#781) - 謝謝 @rayeaster
錯(cuò)誤修復(fù)
修復(fù)對(duì)java.sql.Time的支持 (#791) - 感謝 @brainbytes42。
允許在聚合時(shí)使用空切片 (#795) - 謝謝 @emillynge
修正ColumnType.compare中的NPE(#799)
修正集的NPE(#800)
標(biāo)簽: 數(shù)據(jù)可視化 數(shù)據(jù)解析
下載地址
裝機(jī)必備軟件
網(wǎng)友評(píng)論