-
-
Notifications
You must be signed in to change notification settings - Fork 6
Design Choices
bhpayne edited this page Dec 20, 2014
·
2 revisions
List of the various options for design decisions
There are a couple of decisions to be made:
- what format should the graph be stored in?
- what format should the database be stored in?
- what programs can render and interact with the graph?
- http://svgkit.sourceforge.net/SVGLaTeX.html
- http://wm.ite.pl/proj/pydvi2svg/index.html
- http://dvisvgm.sourceforge.net/
- http://docs.mathjax.org/en/latest/output.html
* http://docs.mathjax.org/en/latest/options/SVG.html * http://www.cityinthesky.co.uk/opensource/pdf2svg
The following are ways in which the graph can be rendered
DOT to XML http://www.mydarc.de/dl9obn/programming/python/dottoxml/
GXL to GraphML and Vice Versa with XSLT: https://dl.acm.org/citation.cfm?id=1705905
* GraphML * http://graphml.graphdrawing.org/ * https://en.wikipedia.org/wiki/GraphML * http://graphml.graphdrawing.org/primer/graphml-primer.html * GraphML is an specification in XML * human readable * structured text * GraphML supports SVG * GXL (Graph eXchange Language) * https://en.wikipedia.org/wiki/GXL * http://www.gupro.de/GXL/ * Trivial Graph Format * https://en.wikipedia.org/wiki/Trivial_Graph_Format * DOT * https://en.wikipedia.org/wiki/DOT_language
The following are ways the data can be stored
* XML * human readable * structured text * non-standard tags=not recognized by any other programs * plain text * human readable * non-standard structure
The following are ways to render a text graph visually
https://en.wikipedia.org/wiki/Diagramming_software
* GraphViz * produces static output (cannot be manipulated through GUI) * https://en.wikipedia.org/wiki/Graphviz * http://www.graphviz.org/ * Gephi * meant for analysis of graph properties, not graph manipulation * https://gephi.org/ * https://gephi.org/users/supported-graph-formats/ * GEXF, GDF, GML, GraphML, Pajek NET, GraphViz DOT, CSV, UCINET DL, Tulip TPL, Netdraw VNA, Spreadsheet * pictures as nodes: * https://gephi.org/plugins/image-preview/ * yEd * good for editing the visual graph. Offers multiple layout options * https://en.wikipedia.org/wiki/YEd * http://www.yworks.com/en/products_yed_download.html * works with GraphML * pictures (SVG) as nodes: * http://yed.yworks.com/support/qa/48/how-can-i-use-my-own-node-symbols-in-yed * http://yed.yworks.com/support/qa/7/can-i-use-latex-to-format-labels * Dia * doesn't support force-based layout. * http://live.gnome.org/Dia/ * http://projects.gnome.org/dia/ * https://en.wikipedia.org/wiki/Dia_(software) * Calligra Flow (formerly Kivio) * https://en.wikipedia.org/wiki/Calligra_Flow * http://www.calligra.org/get-calligra/ * Processing * Example of Pre-existing graph: http://www.openprocessing.org/visuals/?visualID=9379 * would need to use pictures for nodes instead of Latex
See also the list provided at http://stackoverflow.com/questions/7034/graph-visualization-code-in-javascript
* JS-Graph-It * http://js-graph-it.sourceforge.net/index.html * Cytoscape * http://cytoscape.github.io/cytoscape.js/ * https://github.com/cytoscape/cytoscape.js * supports pictures as nodes: http://jsbin.com/kahar/6/edit * Dracula * http://www.graphdracula.net/ * supports PNG and SVG as nodes, see http://www.graphdracula.net/documentation/ * Canviz * https://code.google.com/p/canviz/ * ArborJS * http://arborjs.org/ * force-directed layout algorithm * SigmaJS * http://sigmajs.org/ * D3JS * http://d3js.org/ * JointJS * http://jointjs.com/download * Springy * https://github.com/dhotson/springy * http://dhotson.github.io/springy/demo.html * arbor * https://github.com/samizdatco/arbor * Gilad * http://giladlotan.com/html5-interactive-directed-graph/ * large graph viz HTML5 * https://gitorious.org/web-based-large-graph-visualization-with-html-5/web-based-large-graph-visualization-with-html-5/source/HEAD: * JSPlumbToolkit * http://jsplumbtoolkit.com/demo/home/dom.html
* EquationMap * http://equationmap.com/