• Stars
    star
    334
  • Rank 126,264 (Top 3 %)
  • Language
    JavaScript
  • License
    MIT License
  • Created over 9 years ago
  • Updated over 5 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

An interactive tool for exploring large, tabular datasets.

Datacomb

An interactive tool for analyzing, exploring and combing through tabular datasets. by @ChrisPolis

Turn your data into: live demo datacomb preview

Usage

As an htmlwidget in R

devtools::install_github('cmpolis/datacomb', subdir='pkg', ref='1.1.2');
library(datacomb);
Datacomb(iris)

In a browser, with JavaScript:

to build: $ npm install && npm run build

//
//
// Sample usage of Datacomb (see also: /demo/demo.js)

// Column definitions, meta data
var columns = [
  {
    label: 'Team',
    accessor: 'team',

    // columns that are not quantitative need `type` flag
    type: 'discrete'
  },
  {
   label: 'Pos',
   accessor: 'pos',
   type: 'discrete',
   sortOrder: 'PG SG SF PF C'.split(' ')
  },
  {
    label: 'Points',
    accessor: 'pts'
  },
  {
    label: 'Minutes',
    accessor: 'mp'
  },
  {
    label: 'Pts / Min',

    // column defenitions can be functions
    accessor: function(d) { return d.pts / d.mp },

    // can define `format` function to change how text is displayed on the tbale
    format: function(val) { return val.toFixed(3) + 'pts/min'; },
  }
];

// init the interface
var myDatacomb = new Datacomb({

  //
  el: document.getElementById('datacomb-target'),

  // array of objects
  data: [ {name: 'Hank', team: 'Liverpool', points: 3 }, { ... }, ... ],

  //
  columns: columns,

  //
  labelAccessor: 'name'

});

Catalog of Interactions

Hover over rows to reveal exact values

hover

Sort by column(s)

sort

Filter rows visually with a slider or by specifiying exact bounds

filter

Click and drag to select rows to focus

focus

Show only selected rows to analyze a subset

focusonly

View distribution data for each column

histogram

View summary statistics for each column

summary

View relationships between columns by creating scatter plots of a column and all other columns

scatter

Group rows by discrete dimensions

group

Contributing

Pull requests welcomed! However, please try to mention or ask about it as an issue to make sure what you are working on will be merged in and is not already in progress.

$ npm install
$ npm run build
$ npm run serve
$ open http://localhost:5050/demo/

Testing

$ npm test

Resources

Blog post, demo of prototype/old version: http://www.bytemuse.com/post/data-comb-visualization/

R Package(CRAN!): https://github.com/mtennekes/tabplot

Table Lens Paper: https://www.cs.ubc.ca/~tmm/courses/cpsc533c-04-fall/readings/tablelens.pdf

Demo dataset sources:

Status, project todo, notes

  • [IN PROGRESS] v1/prototype:
    • 👍 project setup: can build, test, view in browser...
    • 👍 (https://github.com/cmpolis/smart-table-scroll) table row reuse (minimize # of <.row> DOM elements)
    • 👍 table layout and properly sized bars
    • 👍 hover interaction
    • 👍 click interaction
    • 👍 drag interaction
    • 👍 filtering
    • 👍 sorting
    • 👍 scatter plots (canvas)
    • 👍 histograms
    • 👍 summary statistics
    • 👍 grouping (by discrete dimensions)
    • 👍 coloring (by discrete dimensions)
  • v2
    • expandable(full screen?) scatter plots
    • regressions in scatter plots
    • dynamic column addition, removal
    • custom column widths
    • functional column definitions from ui: eg: areaCol: ${height} * ${width}
    • axis labels
    • log scaling
    • quantize columns (continuous dim -> discrete dim)
    • illustrate filter response on histograms
    • illustrate filter response on scatter plots
    • close/expand groupings in table
    • 🚧 keyboard shortcuts
  • 🚧 HTMLWidget/R package
  • Serializable table configuration format. JSON?
  • Natural language/DSL mode for table configuration, querying

Released under the MIT License.

More Repositories

1

scrollIt.js

A jQuery plugin that makes it easy to create paginated, feature vertically scrolling pages.
JavaScript
539
star
2

smart-table-scroll

Build 1MM row tables with native scroll bars by reusing and yielding nodes.
JavaScript
538
star
3

Pagify

Effortlessly create single page web sites with this jQuery plugin.
JavaScript
487
star
4

convertSTL

A utility for converting STL files between ASCII and binary encoding.
Ruby
74
star
5

hcluster.js

Agglomerative Hierarchical Clustering in JavaScript. (that plays nice with d3.js).
JavaScript
30
star
6

d3-annotate

📌 Interactively and programmatically add, edit, move and save SVG chart annotations.
JavaScript
22
star
7

Apples-and-Oranges

An online version of Apples to Apples built with JavaScript.
JavaScript
14
star
8

distance.js

Vector distance and similarity measurements in JavaScript. eg: Euclidean, Manhattan, Chebyshev, angular distance.
JavaScript
9
star
9

canvas-dpi-scaler

Utility to scale <canvas> for Retina and other high resolution screens.
JavaScript
9
star
10

us-town-names-vis

d3.js visualization prototype code used to build: http://www.bytemuse.com/post/us-town-names-canvas-d3/
JavaScript
8
star
11

Rails_Quiz

A quiz generator built with Ruby on Rails
Ruby
5
star
12

project_euler

Solutions to Project Euler written elegantly in Ruby.
Ruby
3
star
13

nba-seasons-vis

Visualization prototype code and phantomJS script used to build http://www.bytemuse.com/post/nba-games-played-win-record-vis/
JavaScript
3
star
14

Node-Users

A simple login system to demonstrate Node.JS and CouchDB
JavaScript
3
star
15

stl-utilities

Command line utility tools for working with STL/3D printing models.
C
2
star
16

zencms

A model oriented CMS for developers, designers and their clients.
Ruby
2
star
17

Simple-Commerce

A simple, lightweight and flexible Ruby on Rails based eCommerce system.
Ruby
2
star
18

shiny-quantmod-boilerplate

Boilerplate for creating finance applications with Shiny and Quantmod.
R
2
star
19

ractive-range-slider

Ractive component for a range slider composed of two native <input type=range> elements.
JavaScript
1
star
20

dotfiles

. files
Shell
1
star
21

angle

ANother Graphing Library written in d3.js and CoffeeScript
CoffeeScript
1
star
22

lets-explore-dataset-1

[Blog post, visualization development] Let's explore a dataset #1: Seasonality in Air Traffic Routes
1
star