intelogie/pivottable

JavaScript 交叉表实现(又称交叉网格、交叉图表、交叉表),支持拖放功能。

安装: 108

依赖: 0

建议者: 0

安全: 0

星星: 0

观察者: 2

分叉: 1,071

语言:CoffeeScript

v2.11.1 2017-04-19 14:32 UTC

This package is auto-updated.

Last update: 2024-08-29 04:58:27 UTC


README

npm cdnjs tests license

PivotTable.js

PivotTable.js 是一个基于 jQuery/jQueryUI 的 JavaScript 交叉表库,具有拖放功能,最初用 CoffeeScript 编写,由 Nicolas Kruchten 在 Datacratic 公司创建。

它可在 CDNJS(https://cdnjs.com/libraries/pivottable)和 NPM(https://npmjs.net.cn/package/pivottable)以及 Bower(http://bower.io/)下以名称 pivottable 提供,在 Packagist.org 上为 nicolaskruchen/pivottable

PivotTable.js 可与 Python/Jupyter 和 R/RStudio 一起使用,您现在就可以在浏览器中通过 CSV 文件尝试它。

它做什么?

PivotTable.js 的基本功能是通过将数据集转换为汇总表来启用数据探索和分析,然后可选地添加一个真正的 2D 拖放 UI,允许用户操作此汇总表,将其转换为交叉表,与 Microsoft Excel 旧版本中的交叉表非常相似,并附带一些面向开发者的特性和一些可视化效果。通过可选的插件,汇总表可以渲染为各种类型的图表,将交叉表转换为交叉图表。

image

上面的动画基于 2012 年加拿大议会数据集示例

演示/示例在哪里?

示例页面 上有很多,以下是一些好的入门点:

为什么它很好?

  • 它很轻量:核心(不含图表支持)是一个包含少于 1000 行 CoffeeScript 的单个文件,编译后为 6.3kb 的压缩 JavaScript,仅依赖于 jQuery 和 jQueryUI 的 'sortable'。
  • 它在 jQuery 和 jQueryUI 工作的地方工作(已测试 jQuery 1.8.3 和 jQueryUI 1.9.2)
  • 它在 Chrome 中运行速度可接受,在通用硬件上可达十多万条记录,具体取决于属性的多重性。
  • 其 UI 是 可本地化
  • 其分层架构允许在有或没有交叉表 UI 的情况下生成汇总表(如果您不使用 UI,则没有依赖于 jQueryUI)
  • 它与常见的 输入格式 一起工作
  • 它的 派生属性 可以通过传递一个函数在输入记录上动态创建
  • 它具有复杂的聚合函数,可以基于整个输入记录计算值(例如加权平均值)。
  • 它内置了对基本热图和条形图渲染器的支持,以及可选的额外渲染器,增加了图表或TSV导出支持
  • 其扩展点允许聚合函数、表格输出、UI和可视化根据特定应用进行定制。
  • 它在支持jQuery UI Touch Punch的移动设备上运行。
  • 它有一个测试套件

我如何使用UI?

PivotTable.js实现了一个类似于流行电子表格程序中的拖放UI的枢轴表。您可以将属性拖入/拖出行/列区域,并指定渲染、聚合和筛选选项。维基中有分步教程

我如何加载代码?

PivotTable.js实现了通用模块定义(UMD)模式,因此应该与大多数脚本加载和依赖关系管理方法兼容:直接脚本加载,例如从CDNJS或使用RequireJSBrowserify等。对于后一种选项,您可以使用npm install pivottableNPM获取它,或通过Bower使用bower install pivottable获取。

如果您直接加载脚本(如示例中所示),则需要

  1. 加载依赖项
  2. 在所有情况下都需要jQuery
  3. jQueryUI以支持交互式pivotUI()函数(见下文)
  4. 如果您使用图表插件,则需要D3.js、C3.js和/或Google Charts
  5. 加载PivotTable.js文件
  6. pivot.min.js
  7. 您希望使用的任何插件

依赖项和PivotTable.js文件可以加载

  1. 通过将文件从官方发行版复制到您的项目并本地加载它们(dist目录是您将找到PivotTable.js文件的地方)
  2. 从内容分发网络(CDN)如CDNJS

(示例从CDNJS加载依赖项,并本地加载PivotTable.js)

我如何使用代码?

PivotTable.js提供了两个主要函数:pivot()pivotUI(),它们都作为jQuery插件实现,以及一些辅助器和模板。

pivot()

一旦您加载了jQuery和pivot.js,此代码(演示

$("#output").pivot(
    [
        {color: "blue", shape: "circle"},
        {color: "red", shape: "triangle"}
    ],
    {
        rows: ["color"],
        cols: ["shape"]
    }
);

将此表附加到$("#output")(默认行为是填充表格单元格的计数,这是可覆盖的行为)

image

pivotUI()

将代码稍作修改(调用pivotUI()而不是pivot())会产生具有拖放UI的相同表格,前提是您已导入jQueryUI(演示

$("#output").pivotUI(
    [
        {color: "blue", shape: "circle"},
        {color: "red", shape: "triangle"}
    ],
    {
        rows: ["color"],
        cols: ["shape"]
    }
);

image

请注意,通常情况下,pivot()pivotUI() 的参数不同,尽管在上面的例子中我们向两者传递了相同的参数。请参阅 常见问题解答

请参阅 完整参数文档

文档在哪里?

更详细的文档可以在 wiki 中找到。

我如何构建代码和运行测试?

要安装开发依赖项,只需运行 npm install,这将创建一个包含运行 Gulp 构建系统所需的文件的 node_modules 目录。

修改了仓库顶部任何 .coffee 文件后,您可以通过运行 node_modules/gulp/bin/gulp.js 将文件编译/压缩到 dist 目录。

完成后,您可以将浏览器指向 tests/index.html 以运行 Jasmine 测试套件。您可以在 这里查看当前测试结果。

修改代码和与示例一起工作的最简单方法是运行一个 node_modules/gulp/bin/gulp.js watch serve 命令,该命令会在文件被修改时自动编译 CoffeeScript 文件,并运行一个本地网络服务器,您可以连接到该服务器来运行测试和示例。

我如何贡献?

欢迎提交拉取请求!以下是一些 贡献指南

我有一个问题,我如何联系您?

请首先查看 常见问题解答,如果您在那里或 wiki 中找不到您要找的内容,请 创建一个 GitHub Issue。在创建问题时,请尽量提供一个可复现的测试用例,这样其他人可以更容易地帮助您。请不要直接给作者发邮件,因为您将被要求创建一个 Github Issue :)

版权 & 许可 (MIT 许可)

PivotTable.js 由 © 2012-2016 Nicolas Kruchten, Datacratic, 其他贡献者版权所有

以下条件下,免费授予任何获得此软件及其相关文档文件(“软件”)副本的任何人,在软件上进行处理的权限,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或出售软件副本的权利,以及准许获得软件副本的个人这样做,前提是

上述版权声明和本许可声明应包含在软件的所有副本或主要部分中。

软件按“原样”提供,不提供任何形式的保证,无论是明示的、暗示的,还是关于适销性、特定目的的适用性或非侵权的,包括但不限于上述保证。在任何情况下,作者或版权所有者不对任何索赔、损害或其他责任负责,无论是在合同行为、侵权行为或其他行为中产生的,无论是由于软件或其使用或其他方式引起的。