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.
Although there is no official documentation yet, you can explore the following resources for examples and descriptions.
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! :)
- 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.
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');
});
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
.
- 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.
=======
- 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.
See Roberto Matta @ Wikipedia. He has a painting named "ojo con los desarrolladores" (desarrolladores is spanish for developers).