软件介绍
Tablesaw是一款可以对各类数据表进行处理的强大软件,基于Java语言开发,具有创建统计模型和可视化效果的能力,通过该软件用户可以各种可视化数据绘图,可以通过绘图的方式将表格数据直观的展示出来;Tablesaw功能丰富、简单易用,内置强大稳定的数据框架和可视化库,可用于加载、转换、过滤和总结数据,对于经常处理各种表格数据的用户可下载这款软件进行使用,该软件支持各类数据可视化,可自由选择多种图形可视化显示,非常方便实用。
软件功能
数据处理与转换
从RDBMS,Excel,CSV,JSON,HTML或固定宽度文本文件导入数据,无论这些文件是本地文件还是远程文件(http,S3等)
将数据导出到CSV,JSON,HTML或固定宽度文件。
通过追加或合并表
添加和删除列或行
排序,分组,查询
映射/归约运算
处理缺失值
可视化
Tablesaw通过为Plot.lyJavaScript绘图库提供包装器来支持数据可视化。这是新库运行的一些示例。
统计数据
描述性统计:平均值,最小值,最大值,中位数,总和,乘积,标准差,方差,百分位数,几何平均值,偏度,峰度等。
软件特色
Plot.ly支持多种可视化类型。Tablesaw已经支持许多种,包括时间序列图,柱状图,2D直方图,箱线图,折线图,面积图,散点图,3D散点图,气泡图,排列图,饼图,和条形图。
我们支持地块上的多种变体。例如,对于条形图,我们支持垂直和水平,一变量以及分组或堆叠的图表。
我们不断增加对许多其他类型的支持,包括地理地图,树图,网络图,热图,数据图,分布图,3D表面,3D色带,风玫瑰图,三次图,2D密度图,等高线图,树-地图,小提琴图,散点图矩阵等。
我们提供了一个一致的JavaAPI,用于使用构建器,键入安全枚举和其他Java功能来构造这些图,以最大程度地减少使用基于JavaScript的工具时的拼写和其他问题。
这些地块具有单一,一致且专业的外观。
每个图表都是交互式的。它们使用常见的交互式工具系列进行渲染,以进行保存,打印,平移,缩放,选择点等。
支持的自定义范围非常广泛,包括字体,图例,自定义轴,尖峰,悬停效果等。您几乎总是可以得到所需的可视化效果。
当您准备与更广阔的世界共享可视化效果时,可以在网页中使用输出
官方教程
汇入资料
注意:为了最大程度地减少核心库的大小,某些阅读器(当前为JSON,HTML表和Excel文件)打包在单独的模块中。您需要将它们包括在项目中才能使用这些Table.read()方法。
有关可用方法的列表,请参见DatadocReader的JavadocTable.read()。
文本文件(CSV,制表符分隔,固定宽度字段等)
大多数文本格式都被类似地对待。本节介绍了诸如CSV之类的矩形文本格式,但是许多信息也与JSON,Excel和HTML表有关。
从磁盘上的CSV文件加载数据的最简单方法是使用:
Tablet=Table.read().file("myFile.csv");
此方法为文件名以外的所有内容提供默认值。我们假设列之间用逗号分隔,并且文件中有一个标题行,我们用它来创建列名。如果一个或多个默认值不正确,则可以使用类CsvReadOptions自定义加载过程。
您可以使用构建器创建选项对象:
该头选项指示是否有在该文件的顶部的一行标题行。如果header为false,我们将所有行都视为数据。
例如,如果要加载制表符分隔的文件,则分隔符选项允许您指定除逗号以外的分隔符。
使用dateFormat可以提供一种读取日期的格式。文件中的所有日期都应使用相同的格式,并且该格式与java.time.format.DateTimeFormatter中定义的格式相同。
创建表时,将基于从中加载文件的名称为其指定默认名称。您可以随时使用更改名称table.setName(aString);。表名称用于打印表及其相关信息。
列类型
使用所有这些方法,Tablesaw会查看文件中每一列中的数据,并对类型进行疯狂的猜测。实际上,它查看数据样本并应用一些启发式方法。当然,数据集可能包含类型推断样本中遗漏的稀有值。如果发生这种情况,您可以设置选项sample(false)以在执行类型推断时考虑所有数据。
如果似乎没有其他合适的方法,则将该列读取为StringColumn。通常,Tablesaw会正确处理,但有时需要一点帮助。
指定每一列的数据类型
通过一点帮助,我们意味着您可以通过将ColumnType对象的数组传递给read()。csv()方法来显式指定类型。例如:
如果这看起来很麻烦,那么它确实具有一些优势。
首先,由于系统无需推断列类型,因此减少了加载时间。如果文件很大,则节省的时间可能很长。
其次,它使您可以完全控制列的类型。
在某些情况下,您必须指定列类型,因为Tablesaw无法正确猜测。例如,如果文件中的时间编码为HHmm,以使中午显示为“1200”,则无法推断这意味着中午12:00,而不是整数1200。
捷径:获取猜测的列类型
如果表中有许多列,那么手工构建列类型数组可能很繁琐。为了帮助您,CsvReader提供了一些方法,这些方法可以以数组形式或字符串形式返回推断出的ColumnType。格式化字符串,使其类似于Java数组文字。即使读取文件失败,也可以使用此方法。
请注意,返回的String是一个合法的数组文字,您可以粘贴到Java代码中:类型以逗号分隔,并且提供索引位置和列名,以便将它们解释为注释。您可以将其粘贴到您的代码中,然后对其进行编辑以修复任何不正确的列类型。
导入期间跳过列
指定列类型的另一个优点是,如果不需要,可以跳过某些列。您可以使用特殊的“SKIP”列类型来阻止导入这些列,如下所示:
在此示例中,第一列和最后一列均未加载。
处理缺失数据
Tablesaw具有一组预定义的字符串,当从CSV文件读取时,它会解释为丢失的数据。它们是:“NaN”,“*”,“NA”,“null”,当然还有空字符串“”。
当遇到这些字符串之一时,它将被Tablesaw中特定于类型的丢失指示符替换。对于字符串,这是一个空字符串。对于双打,就是Double.NaN。有关更多信息,请参见JavaDocforColumnType。
如果文件具有不支持的缺失值指示符(例如“-”),则可以在选项构建器中提供它。
处理日期和时间
由于语言环境和多种可能的格式,因此导入日期和时间可能会比较棘手。与其他列类型一样,Tablesaw会尽力确定要表示的类型并将其正确导入。如果失败,则有两件事可以帮助您。首先是指定语言环境。语言环境还可以帮助处理数字格式。
第二个是为每个时间列指定精确格式。
使用StreamAPI
当您在文件系统上存储了CSV文件时,以上所有示例都试图简化加载过程。加载CSV的一种更灵活的方法是使用Stream接口,该接口采用java.io.InputStream作为参数。
Table.read().csv(InputStreamstream,StringtableName);
它可以用来读取本地文件,也可以用来在S3等网络中读取网络文件。这是如何使用它的一些示例。
从网站加载CSV:
从S3加载CSV:
处理备用编码
默认情况下,我们假设您的文件采用UTF-8编码。如果文件使用其他编码,则加载过程会稍有不同。您需要在使用正确编码构造的FileInputStream上打开阅读器。这是一个例子。
从数据库导入
从数据库查询结果创建表同样容易。在这种情况下,您无需指定列类型,因为它们是从数据库列类型推断出来的。
Tablet=Table.read().db(ResultSetresultSet,StringtableName);
这是一个更完整的示例,其中包括JDBC设置:
从HTML,JSON,Excel导入
Tablesaw支持从HTML,JSON和Excel导入数据。有关更多信息,请参见Javadoc中的Table.read()方法。您将需要添加相应的可选依赖项:
条形图,饼图和帕累托图
Tablesaw是Java数据科学平台,可以过滤和转换数据集。它还为可视化提供了广泛的支持。在此讨论中,我们将使用来自NOAA的Tornado数据集,该数据集可在Tablesaw项目的data文件夹中找到。
尽管Tablesaw可以生成出版质量的图形,但这里的重点是探索性分析,其中内容和易用性比修饰更重要。在这里,我们重点介绍一些用于处理单变量数据的常见绘图类型:
条形图
饼状图
帕累托图
范例程式码
可以在类BarPieAndParetoExample.java中找到本文档中用于生成图表的所有代码。
https://github.com/jtablesaw/tablesaw/blob/master/jsplot/src/test/java/tech/tablesaw/examples/BarPieAndParetoExample.java
我们建议您打开该课程并继续学习。
进行设定
首先,我们加载并清理龙卷风数据集。我们使用Table.read()。csv()打开文件。
接下来,我们清理文件。我们要使用比例列。龙卷风根据其风速被分配为从0到5的比例,但是我们的数据集缺少编码为-9的缺失值,这将使图表消失。为了解决这个问题,我们将比例列中的每个-9值设置为缺失值指标。然后,我们可以创建图。
条形图
我们从无处不在的条形图开始。条形图通常显示已汇总为组的数据。要创建条形图,您需要做两件事:
一些数值
一些类别将它们分组
我们首先根据龙卷风的强度计算与龙卷风有关的死亡人数。
然后我们绘制结果:
绘制平均值,中位数和其他汇总统计信息
在上面的示例中,我们创建了显示值总和的图。为此,我们首先在表上调用summary(),传入要汇总的列的名称,聚合函数sum,并应用子句by()来指定如何对数据进行分组。
在AggregationFunctions类中定义了许多聚合函数,例如sum,mean,median,standardDeviation,percentile(n),max,kurtosis等。我们可以使用任何聚合函数代替sum。在这里,我们将看一下平均值。
我们采用与上述相同的策略,使用汇总方法创建一个新表,该表收集每个“标度”值的平均受伤人数。一旦有了,我们就创建并显示情节
在有关高级绘图功能的下一部分中,我们将介绍如何创建堆叠和分组的条形图。
饼图
饼图被广泛批评和普遍存在。通常,条形图更易于解释,因此通常是首选。我们将被撤职,但是不提供饼图支持。此示例显示了一个饼图,该饼图显示的数据与上面的第一个条形图相同:
帕累托图
条形图上的一个简单变化是帕累托图。在下面的曲线图中,死亡人数是按美国州求和的,结果按照总数从高到低的顺序排序。示例代码中有详细信息。
更新日志
特点
创建气泡图的更多选项(#781)-谢谢@rayeaster
错误修复
修复对java.sql.Time的支持(#791)-感谢@brainbytes42。
允许在聚合时使用空切片(#795)-谢谢@emillynge
修正ColumnType.compare中的NPE(#799)
修正集的NPE(#800)
Tags:Tablesaw下载,Tablesaw,数据处理,数据科学可视化库
小编点评:涉密硬盘清除工具,彻底破坏系统并不.
下载小编点评:软件介绍NqLive网络电视起初是NBA.
下载小编点评:早安我的少年日版是一款具有女性向特色.
下载小编点评:祛魅格心测试版是一款剧情任务丰富的.
下载小编点评:龙城盛典游戏将为您带来最最经典的传奇内容,经典.
下载小编点评:传奇家族手游是一款横版的角色扮演的.
下载小编点评:攻速冰雪手游是一款热血十足的传奇游.
下载小编点评:宝鼎传奇之决战沙城手游是一款经典传奇.
下载小编点评:卡哇伊传奇游戏是一款超棒的动作类游.
下载小编点评:星际跳跃中文版是一款星际跳跃手机版系列的闯关横版游.
下载小编点评:贤者之石起源内购破解版是一款非常棒的打.
下载小编点评:海底猎杀模拟器游戏让你体验海底射击.
下载小编点评:超级英雄决斗游戏是很好玩的动作各栋类题材.
下载皇家火箭人官方版下载-皇家火箭人游戏下载v1.5.2 安卓版
2018有杀气童话魅族版下载-有杀气童话手游魅族版下载v1.9.0 安卓版
绻绻如意大字版软件手机版下载-绻绻如意大字版app下载v1.0.0 安卓最新版
代号105手游下载-代号105官方版下载v1.0.4 安卓版
果盘斩妖录变态版下载-斩妖录手游bt果盘版下载v1.3001 安卓送50连抽版
幻灵仙境新春版本下载-幻灵仙境红包版下载v6.3.0 安卓版
口袋妖怪复刻当乐平台下载-口袋妖怪复刻当乐版本下载v7.1.0 安卓客户端
传奇来了胡军版手游百度版下载-传奇来了胡军版百度版下载v1.0.0 安卓最新版
凌云江湖行首测版下载-凌云江湖行测试版下载v1.1 安卓最新版
剑梦三界游戏-剑梦三界手游(暂未上线)v1.1.0 安卓版
暗黑血统2最新国际版下载-暗黑血统2国际版下载v2.1 安卓版
挂机啪啪啪官网下载-挂机啪啪啪手游下载v2.3.2 安卓最新版
全民掌门游戏下载-全民掌门手游下载v1.0.0 安卓版