Skip to content

LucaFoschini/matta

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

75 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

matta

An artist for your IPython notebook that helps you to use and scaffold visualizations with d3.js.

Currently matta supports some visualizations that I have needed to implement in my on-going doctoral thesis. But the main idea is to have a generalizable template to build visualizations on.

matta works with Python 2. Python 3 support is planned to be added at some point.

Contributions are welcome.

Examples / Documentation

Although there is no official documentation yet, you can explore the following resources for examples and descriptions.

IPython Notebooks

The following notebooks serve as examples/documentation:

If you do not see any visualizations when browsing the notebooks on NBViewer, please refresh the page. I don't know why it doesn't work on first load -- if you have any idea of why this happens, please let me know! :)

In the Wild

  • 2|S: Los Dos Santiagos: this is a project where we scaffolded many visualizations (Sankey, TopoJSON, Force Edge Bundle) to visualize transport data in Santiago, Chile. All visualizations in the page were scaffolded with matta! Note: the site is in spanish.

Initialization / Installation

First, install the python package:

pip install -r requirements.txt
python setup.py install

Then make a symbolic link in your IPython profile to matta libs:

~/.ipython/profile_default/static/custom$ ln -s ~/phd/apps/matta/matta/libs/ matta

And finally, edit the custom.js file and add the following lines:

require.config({
    paths: {
        "leaflet": "/static/custom/matta/leaflet-0.7.3/leaflet-src",
        "wordcloud": "/static/custom/matta/d3.layout.cloud",
        "sankey": "/static/custom/matta/d3.sankey",
        "matta": "/static/custom/matta/matta",
        "tile": "/static/custom/matta/d3.geo.tile",
        "force_edge_bundling": "/static/custom/matta/d3.ForceEdgeBundling",
        "topojson": "/static/custom/matta/topojson",
        "d3": "/static/custom/matta/d3.v3.min",
        "cola": "/static/cola.v3.min'"
    }
});

require(['matta'], function(matta) {
    matta.add_css('/static/custom/matta/matta.css');
});

Credits

Although matta is mostly coded by me (@carnby, it contains many code and ideas from others. In particular:

  • Jason Davies and Mike Bostock -- much code from them is being used, reused and abused (not to mention d3.js itself). Thanks!
  • Force Bundle Layout
  • All the great devs behind IPython, numpy, scipy, pandas, networkx, seaborn, d3.js...

In particular, it includes the following libraries:

Note that some libraries were modified to be able to load them through require.js.

Next Steps

  • Clear and update requirements.txt.
  • Make visualizations modular.
  • Clarify licenses of bundled libraries.
  • Allow to export template versions of visualizations+data (e.g., export to gist).
  • Build a plug-in structure to help developers to define behavior at visualization events.

=======

Credits

  • Jason Davies and Mike Bostock -- code from them is being used, reused and abused (not to mention d3.js itself). Thanks!
  • All the great devs behind IPython, numpy, scipy, pandas, networkx, seaborn, d3.js... and, of course, behind the bundled libraries referenced above.

About the name

See Roberto Matta @ Wikipedia. He has a painting named "ojo con los desarrolladores" (desarrolladores is spanish for developers).

About

matta - view and scaffold d3.js visualizations in IPython notebooks

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • JavaScript 90.1%
  • Python 6.1%
  • CSS 2.8%
  • HTML 1.0%