Git Product home page Git Product logo

gg-old's Introduction

Hey Bro, moved to sirrice/gg

gg

Javascript DSL for Grammar of Graphics extended to support interactivity and backend data-processing support. Written in coffeescript

See notes for details

Setup

Install node

brew install node

Install gg

npm install

Install coffeescrip

---

Compile

cake build
cake release

Current Implementation

Screenshot!

Related Technologies

  • ggplot2 (+ shiny?)
  • ggobi
  • tableau
  • protovis
  • perfuse
  • cranvas

TODO

XForms

  • Ues a consistent spec for an xform (layers also use this)

    { type: STRING aes: { [aesthetic: MAPPING SPEC]* // [group: MAPPING SPEC] // precede computation with split, follow with join/label } [param: [STRING | NUMBER | OBJECT | FUNCTION]]* }

  • Support asynchronous operators (send to thread, send to REST API)

  • Support data/table spec option

    • what should the API be?
  • support params/args in xforms -> add @param() to xform method list

  • Support grouping and propogating mapped discrete aesthetics down the workflow

  • allow aesthetics aliases color: "attr2" actually compiles to fill: "attr2" stroke: "attr2"

Workflow

  • support

Scales

  • use provenance data to decide the "correct" scales to use for a table column
  • allow position scales to use same units/pixel

Coordinate System

  • Coordinate systems (esp. pie charts)

Rendering

  • draw facet labels after geometries

Misc

  • remove nested arrays from tables, and support partition by clauses in xform operators
  • name the phases and the operators more consistently and predictably
  • documentation
  • Regularize/rationalize/document use of CSS for controlling appearence.
  • In-browser interactive graphic builder. (REPL?)

Provenance

  • add provenance system

Tables

  • figure out sane semantics for table mapping if a nested value is mapped

DONE!

  • support detecting scales types (color scales esp)
  • FIX COORD SWAP, AND CONSOLIDATE TABLE COLUMNS ONTO SINGLE SCALE OBJECT, TYPED SCHEMAS?
  • support tables as columns (blocker for line charts).
  • add types to tables
  • allocate panes after computing the a[x]s tick size of y a[x]s to know how much spacing to give
  • allow aesthetics with dashes in name (e.g., fill-opacity) in evaled JS scripts -> currently var fill-opacity = row['fill-opacity']
  • render bars
  • in aesthetic mappings, differentiate evaled e[x]ressions and string constants -> evaled e[x]ressions are of form: "{ JAVASCRIPT }" string values are ""
  • fix instantiating barriers
  • fixed problem where scales.scale('[x]) returns same gg.scale for all layers
  • make stats work
  • make positioning work
  • make sure retraining scales after positioning works -> facets set position range in allocatePanes. need to make sure if ranges are set that they will be used in future. -> stop overwriting e[x]sting scales objects?

Acknowledgements

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.