Tablesaw是一款专业的数据可视化工具软件。Tablesaw让你的数据更加清晰化。软件基于Java语言开发,它有能力创建统计模型和可视化效果。通过软件用户,可以通过绘图绘制各种可视数据图形,并且可以在视觉上显示表数据; TablesAW丰富,易于使用,内置强大的稳定性数据框架和可视化库可用于加载,转换,过滤和总结数据。对于经常处理各种表数据的用户来说,该软件支持各种数据可视化,自由选择各种图形可视化显示,非常方便和实用。
软件功能:
数据处理和转换
从RDBMS,Excel,CSV,JSON,HTML或固定宽度文本文件导入数据,无论这些文件是本地文件还是远程文件(HTTP,S3等)
将数据导出到CSV,JSON,HTML或固定宽度文件。
添加或合并表
添加和删除列或行
排序,组,查询
映射/限制操作
处理缺乏价值
可视化
Tablesaw通过为图标提供包装器来支持数据可视化。这是新库运行的一些示例。
统计数据
描述性统计:平均值,最低,最大,中位数,总,产品,标准偏差,方差,百分位,几何平均,偏置,峰值等级等。
官方教程:
交换信息
注意:为了最小化核心库的大小,在单独的模块中打包一些读者(当前JSON,HTML表和Excel文件)。您需要将它们包含在项目中以使用这些table.read()方法。
有关可用方法列表,请参阅Datadocreader的Javadoc Table.read()。
文本文件(CSV,标签分隔,固定宽度字段等)
大多数文本格式都得到了类似地对待。本节介绍矩形文本格式,如CSV,但许多信息也与JSON,Excel和HTML表相关。
从磁盘上的CSV文件中加载数据的最简单方法是使用:
表t = table.read()。文件(“myfile.csv”);
此方法为文件名以外的所有内容提供默认值。我们假设列用逗号分隔,文件中有一个标题行,我们使用它来创建列名。如果一个或多个默认值不正确,则可以使用Class CSVReadOptions自定义加载过程。
您可以使用构建器创建选项对象:
标题指示文件顶部是否存在一行头标。如果标题为false,则会将所有行视为数据。
例如,如果要加载平板电脑分隔文件,则分隔符选项允许您指定除逗号之外的分隔符。
使用DateFormat可以提供读取日期的格式。文件中的所有日期都应以相同的格式使用,此格式与java.time.format.dateTimeFormatter中定义的格式相同。
创建表时,您将根据加载文件的名称指定默认名称。您可以随时使用更改名称表.SETNAME(Astring);用于打印表及其相关信息的表名称。
列类型
使用所有这些方法,Tablesaw将在文件中的每列中查看数据,并对类型进行疯狂的猜测。实际上,它观看数据样本并适用一些启发式方法。当然,数据集可能包含样本中的类型推断的丝毫值。如果发生这种情况,您可以在执行类型推断时设置选项样本(FALSE)以考虑所有数据。
如果没有其他合适的方法,则读取列
TringColumn。通常,Tablyaw将正确处理,但有时需要有点帮助。
指定每列的数据类型
通过一点帮助,我们的意思是通过传递ColumentType对象数组来传递读取()。明确指定了CSV()方法。例如:
如果这看起来很麻烦,它确实有一些优点。
首先,由于系统不需要推断列类型,因此减少了负载时间。如果文件很大,则节省时间可能很长。
其次,它允许您完全控制列的类型。
在某些情况下,您必须指定列类型,因为tablesaw无法正确猜测。例如,如果文件中的时间被编码为HHMM,则不可能在中午推断为“1200”,这意味着中午12:00,而不是整数1200。
快捷方式:获取猜测的列类型
如果表中有许多列,则手动构建列类型数组可能是麻烦的。为帮助您,CSVReader提供了一些方法,可以以阵列或字符串的形式返回,以减少ColumNType。格式字符串使它们类似于Java数组文本。即使读取文件发生故障,也可以使用此方法。
请注意,返回的字符串是一个合法数组文本,您可以粘贴到Java代码中:用逗号分隔的类型,并提供索引位置和列名称以解释它们作为评论。您可以将其粘贴到您的代码中并编辑它以修复任何不正确的列类型。
进口时跳过
指定列类型的另一个优点是如果不需要,可以跳过某些列。您可以使用特殊的“跳过”列类型来阻止导入这些列,如下所示:
在此示例中,在第一列和最后一列中卸载。
处理缺失数据
Tablesaw在从CSV文件读取时,有一组预定义字符串被解释为丢失的数据。它们是:“nan”,“*”,“na”,“null”当然有一个空字符串“”。
当您遇到其中一个字符串时,它将被特殊配置的TablyAw替换。对于字符串,这是一个空字符串。对于双重游戏,它是双倍.Nan。有关更多信息,请参阅ClatumNType的javadoc。
如果该文件具有缺少值指示符(例如,“ - ”),则可以在“选项”构建器中提供它。
日期和时间
由于语言环境和各种可能的格式,导入日期和时间可能更加困难。与其他列类型一样,TablyAw将尝试确定类型以正确表示和导入。如果有失败,有两件事可以帮助你。第一个是指定的语言环境。语言环境还可以帮助处理数字格式。
第二个是为每个时间列指定精确的格式。
使用Stream API
将CSV文件存储在文件系统上时,所有上面的示例都尝试简化加载过程。加载CSV的更灵活的方法是使用使用java.io.InputStream作为参数的流接口。
table.read()。 CSV(InputStream Stream,String TableName);
它可用于读取本地文件或读取S3和其他网络中的网络文件。这是如何使用一些示例。
从本网站加载CSV:
从S3加载CSV:
处理备用编码
默认情况下,我们假设您的文件使用UTF-8进行编码。如果文件使用其他编码,则负载过程将略有不同。您需要使用正确编码的构造,在FileInputStream上打开读取器。这是一个例子。
从数据库导入
从数据库查询创建表同样容易。在这种情况下,您不需要指定列类型,因为它们是从数据库列类型推断出来的。
表t = table.read()。 db(结果集结果集,字符串tableName);
这是一个更完整的示例,包括JDBC设置:
从HTML,JSON,Excel导入
Tablesaw支持来自HTML,JSON和Excel的导入数据。有关更多信息,请参阅javadoc中的table.read()方法。您需要添加相应的可选依赖项:
条形图,饼图和帕累托
Tablesaw是一个可以过滤和转换的Java数据科学平台。它还为可视化提供了广泛的支持。在本讨论中,我们将使用NOAA中的Tornado数据集,该数据集可以在TablesAW项目的“数据文件夹”中找到。
尽管Tablawaw可以生成出版质量的图形,但这里的焦点是探索分析,其中内容和易用性比修改更重要。在这里,我们专注于用于处理单个变量数据的一些常见绘图类型:
条形图
饼形图
帕累托
模板代码
你可以找到所有代码u
SED在类BarpieAndparetoexample.java中生成本文档中的图表。
https://github.com/jtablew/tablesaw/blob/master/jsplot/src/test/java/tech/tablesaw/examples/barpieandparetoexample.java.
我们建议您打开课程并继续学习。
放
首先,我们加载并清理龙卷风数据集。我们使用table.read()。 csv()打开文件。
接下来,我们清理文件。我们希望使用比例列。龙卷风基于风速分配为0到5的比例,但我们的数据集缺少编码为-9的缺失值,这将消失。为了解决这个问题,我们将比例列中的每个值设置为缺少值指示符。然后我们可以创建图片。
条形图
我们从无处不在。条形图通常显示已汇总的数据。要创建条形图,您需要做两件事:
一些价值
某些类别组合
我们首先根据龙卷风的实力计算与龙卷风相关的死亡人数。
然后我们绘制结果:
绘制平均值,中位数和其他摘要
在上面的示例中,我们创建了显示值之和的图。为此,我们第一次调用摘要(),incomplar名称,聚合函数和()和应用条文(),以指定如何组数据。
许多聚合物函数在聚合功能中定义,例如总和,平均值,中位数,标准化,百分位数(n),最大,kurtos,等等。我们可以使用任何聚合函数而不是总和。在这里,我们将看看平均值。
我们使用与上述相同的策略,使用摘要方法创建一个新表,该方法收集每个“缩放”值的平均受伤人数。有一次,我们创建并显示绘图
在高级绘图功能的下一部分中,我们将展示如何创建堆栈和组条形图。
饼形图
饼图被广泛批评和广泛存在。通常,条形图更有可能解释,因此通常优选。我们将被驳回,但没有饼图支持。此示例显示饼图,饼图显示的数据与上面的第一条图相同:
帕累托
条形图上的简单变化是巴特科。在下图中,在美国州询问死亡人数,结果将从高电平排序。示例代码中有更多信息。
软件特色:
plot.ly支持多种可视化类型。 Tablesaw支持许多物种,包括时间序列图,直方图,2D直方图,框线图,线图,区域地图,散点图,3D散点图,泡沫图,布置,饼图和条形图。
我们支持块上的多个变体。例如,对于条形图,我们支持垂直和水平,变量和组或堆叠图表。
我们不断增加许多其他类型的支持,包括地理地图,树图,网络图,热图,数据图,分布地图,3D表面,3D丝带,风铃,三张图表,2D密度图,轮廓线图,树 - 地图,vielicogram,散点图矩阵等
我们提供了一个一致的Java API,用于使用Builder,键入安全枚举和其他Java功能构建这些图像,以最大限度地减少使用基于JavaScript的工具的拼写和其他问题。
这些地块具有单一,一致和专业的外观。
每个图表都是交互式的。他们使用常用的交互式工具来呈现保存,打印,翻译,缩放,选择点等。
支持的自定义范围非常广泛,包括字体,图形,自定义轴,尖峰,悬停效果等。您几乎总是可以获得所需的可视化。
当您准备与更广泛的世界分享视觉效果时,您可以使用网页中的输出。