Name Mode Size
..
AvantGarde.gv 100644 1 kb
Bookman.gv 100644 1 kb
COPYING 100644 12 kb
Courier.gv 100644 1 kb
ER.gv 100644 1 kb
Heawood.gv 100644 1 kb
Helvetica.gv 100644 3 kb
KW91.gv 100644 0 kb
Latin1.gv 100644 0 kb
NaN.gv 100644 3 kb
NewCenturySchlbk.gv 100644 1 kb
Palatino.gv 100644 1 kb
Petersen.gv 100644 1 kb
Symbol.gv 100644 1 kb
Times.gv 100644 1 kb
ZapfChancery.gv 100644 0 kb
ZapfDingbats.gv 100644 0 kb
a.gv 100644 0 kb
abstract.gv 100644 1 kb
alf.gv 100644 1 kb
arrows.gv 100644 2 kb
arrowsize.gv 100644 2 kb
awilliams.gv 100644 7 kb
b.gv 100644 0 kb
big.gv 100644 9 kb
biglabel.gv 100644 3 kb
cairo.gv 100644 6 kb
center.gv 100644 0 kb
clover.gv 100644 0 kb
clust.gv 100644 0 kb
clust1.gv 100644 0 kb
clust2.gv 100644 0 kb
clust3.gv 100644 0 kb
clust4.gv 100644 0 kb
clust5.gv 100644 0 kb
clusters.gv 100644 0 kb
clustlabel.gv 100644 0 kb
color.gv 100644 0 kb
colors.gv 100644 0 kb
colorscheme.gv 100644 0 kb
compound.gv 100644 0 kb
crazy.gv 100644 5 kb
ctext.gv 100644 0 kb
d.gv 100644 0 kb
dd.gv 100644 1 kb
decorate.gv 100644 7 kb
dfa.gv 100644 1 kb
dfd.ps 100644 0 kb
dice.ps 100644 4 kb
dir.gv 100644 0 kb
dpd.gv 100644 1 kb
edgeclip.gv 100644 0 kb
fdp.gv 100644 0 kb
fig6.gv 100644 1 kb
flatedge.gv 100644 0 kb
fsm.gv 100644 1 kb
grammar.gv 100644 1 kb
grdangles.gv 100644 1 kb
grdcluster.gv 100644 0 kb
grdcolors.gv 100644 2 kb
grdfillcolor.gv 100644 4 kb
grdlinear.gv 100644 4 kb
grdlinear_angle.gv 100644 6 kb
grdlinear_node.gv 100644 1 kb
grdradial.gv 100644 5 kb
grdradial_angle.gv 100644 7 kb
grdradial_node.gv 100644 1 kb
grdshapes.gv 100644 1 kb
hashtable.gv 100644 1 kb
honda-tokoro.gv 100644 3 kb
html.gv 100644 1 kb
html2.gv 100644 1 kb
in.gv 100644 0 kb
japanese.gv 100644 1 kb
jcctree.gv 100644 1 kb
jcr.gif 100644 5 kb
jsort.gv 100644 6 kb
labelclust-fbc.gv 100644 0 kb
labelclust-fbd.gv 100644 0 kb
labelclust-fbl.gv 100644 0 kb
labelclust-fbr.gv 100644 0 kb
labelclust-fdc.gv 100644 0 kb
labelclust-fdd.gv 100644 0 kb
labelclust-fdl.gv 100644 0 kb
labelclust-fdr.gv 100644 0 kb
labelclust-ftc.gv 100644 0 kb
labelclust-ftd.gv 100644 0 kb
labelclust-ftl.gv 100644 0 kb
labelclust-ftr.gv 100644 0 kb
labelclust-nbc.gv 100644 0 kb
labelclust-nbd.gv 100644 0 kb
labelclust-nbl.gv 100644 0 kb
labelclust-nbr.gv 100644 0 kb
labelclust-ndc.gv 100644 0 kb
labelclust-ndd.gv 100644 0 kb
labelclust-ndl.gv 100644 0 kb
labelclust-ndr.gv 100644 0 kb
labelclust-ntc.gv 100644 0 kb
labelclust-ntd.gv 100644 0 kb
labelclust-ntl.gv 100644 0 kb
labelclust-ntr.gv 100644 0 kb
labelroot-fbc.gv 100644 0 kb
labelroot-fbd.gv 100644 0 kb
labelroot-fbl.gv 100644 0 kb
labelroot-fbr.gv 100644 0 kb
labelroot-fdc.gv 100644 0 kb
labelroot-fdd.gv 100644 0 kb
labelroot-fdl.gv 100644 0 kb
labelroot-fdr.gv 100644 0 kb
labelroot-ftc.gv 100644 0 kb
labelroot-ftd.gv 100644 0 kb
labelroot-ftl.gv 100644 0 kb
labelroot-ftr.gv 100644 0 kb
labelroot-nbc.gv 100644 0 kb
labelroot-nbd.gv 100644 0 kb
labelroot-nbl.gv 100644 0 kb
labelroot-nbr.gv 100644 0 kb
labelroot-ndc.gv 100644 0 kb
labelroot-ndd.gv 100644 0 kb
labelroot-ndl.gv 100644 0 kb
labelroot-ndr.gv 100644 0 kb
labelroot-ntc.gv 100644 0 kb
labelroot-ntd.gv 100644 0 kb
labelroot-ntl.gv 100644 0 kb
labelroot-ntr.gv 100644 0 kb
ldbxtried.gv 100644 5 kb
longflat.gv 100644 0 kb
lsunix1.gv 100644 1 kb
lsunix2.gv 100644 1 kb
lsunix3.gv 100644 1 kb
mike.gv 100644 0 kb
mode.gv 100644 15 kb
nestedclust.gv 100644 0 kb
newarrows.gv 100644 2 kb
ngk10_4.gv 100644 2 kb
nhg.gv 100644 0 kb
nojustify.gv 100644 0 kb
ordering.gv 100644 0 kb
overlap.gv 100644 1 kb
p.gv 100644 0 kb
p2.gv 100644 0 kb
p3.gv 100644 0 kb
p4.gv 100644 0 kb
pack.gv 100644 0 kb
pgram.gv 100644 3 kb
pm2way.gv 100644 2 kb
pmpipe.gv 100644 3 kb
polypoly.gv 100644 6 kb
ports.gv 100644 1 kb
proc3d.gv 100644 6 kb
process.gv 100644 0 kb
rd_rules.gv 100644 2 kb
record.gv 100644 1 kb
record2.gv 100644 0 kb
records.gv 100644 0 kb
root.gv 100644 125 kb
rootlabel.gv 100644 0 kb
rowcolsep.gv 100644 0 kb
rowe.gv 100644 1 kb
russian.gv 100644 1 kb
sb_box.gv 100644 0 kb
sb_box_dbl.gv 100644 0 kb
sb_circle.gv 100644 0 kb
sb_circle_dbl.gv 100644 0 kb
sdl.ps 100644 18 kb
shapes.gv 100644 1 kb
shells.gv 100644 1 kb
size.gv 100644 2 kb
sl_box.gv 100644 2 kb
sl_box_dbl.gv 100644 4 kb
sl_circle.gv 100644 2 kb
sl_circle_dbl.gv 100644 4 kb
sq_rules.gv 100644 2 kb
sr_box.gv 100644 2 kb
sr_box_dbl.gv 100644 4 kb
sr_circle.gv 100644 2 kb
sr_circle_dbl.gv 100644 4 kb
st_box.gv 100644 2 kb
st_box_dbl.gv 100644 4 kb
st_circle.gv 100644 2 kb
st_circle_dbl.gv 100644 4 kb
states.gv 100644 0 kb
structs.gv 100644 0 kb
style.gv 100644 1 kb
train11.gv 100644 1 kb
trapeziumlr.gv 100644 1 kb
tree.gv 100644 1 kb
triedds.gv 100644 2 kb
try.gv 100644 0 kb
unix.gv 100644 1 kb
unix2.gv 100644 2 kb
unix2k.gv 100644 2 kb
url.gv 100644 1 kb
user_shapes.gv 100644 0 kb
viewfile.gv 100644 2 kb
viewport.gv 100644 36 kb
weight.gv 100644 2 kb
world.gv 100644 1 kb
xlabels.gv 100644 0 kb
xx.gv 100644 100 kb
README.md
About _xdot.py_ ================= _xdot.py_ is an interactive viewer for graphs written in [Graphviz](http://www.graphviz.org/)'s [dot language](http://www.graphviz.org/doc/info/lang.html). It uses internally the GraphViz's [xdot output format](http://www.graphviz.org/doc/info/output.html#d:xdot) as an intermediate format, [Python GTK bindings](https://pygobject.readthedocs.io), and [Cairo](https://cairographics.org/) for rendering. _xdot.py_ can be used either as a standalone application from command line, or as a library embedded in your Python application. Status ====== _xdot.py_ script became much more popular than I ever anticipated, and there are several interested in improving it further. However, for several years now, _xdot.py_ already meets my own needs, and unfortunately I don't have much time for maintaining it myself. So I'm looking into transition _xdot.py_ maintenance to [others](https://github.com/jrfonseca/xdot.py/wiki/Forks): either hand over the maintenance _xdot.py_ to a community or indicate an official fork of _xdot.py_. I encourage people interested in development of _xdot.py_ to fork the [GitHub repository](https://github.com/jrfonseca/xdot.py), and join the new [mailing list](https://groups.google.com/d/forum/xdot-py). Features ======== * Since it doesn't use bitmaps it is fast and has a small memory footprint. * Arbitrary zoom. * Keyboard/mouse navigation. * Supports events on the nodes with URLs. * Animated jumping between nodes. * Highlights node/edge under mouse. Known Issues ============ * Not all xdot attributes are supported or correctly rendered yet. It works well for my applications but YMMV. * Text doesn't scale properly to large sizes if font hinting is enabled. I haven't found a reliable way to disable font hinting during rendering yet. See also: * [github issue tracker](https://github.com/jrfonseca/xdot.py/issues) Screenshots =========== [![Profile 1 Screenshot](https://raw.github.com/wiki/jrfonseca/xdot.py/xdot-profile1_small.png)](https://raw.github.com/wiki/jrfonseca/xdot.py/xdot-profile1.png) [![Profile 2 Screenshot](https://raw.github.com/wiki/jrfonseca/xdot.py/xdot-profile2_small.png)](https://raw.github.com/wiki/jrfonseca/xdot.py/xdot-profile2.png) [![Control Flow Graph](https://raw.github.com/wiki/jrfonseca/xdot.py/xdot-cfg_small.png)](https://raw.github.com/wiki/jrfonseca/xdot.py/xdot-cfg.png) Requirements ============ * [Python 3](https://www.python.org/download/) * [PyGObject bindings for GTK3](https://pygobject.readthedocs.io) * [Graphviz](http://www.graphviz.org/Download.php) Windows users ------------- Download and install: * [Python for Windows](https://www.python.org/downloads/windows/) * [PyGObject bindings for GTK3](https://wiki.gnome.org/action/show/Projects/PyGObject) * [Graphviz for Windows](http://www.graphviz.org/Download_windows.php) Debian/Ubuntu users ------------------- Run: apt-get install gir1.2-gtk-3.0 python3-gi python3-gi-cairo graphviz Usage ===== Command Line ------------ If you install _xdot.py_ from PyPI or from your Linux distribution package managing system, you should have the `xdot` somewhere in your `PATH` automatically. When running _xdot.py_ from its source tree, you can run it by first setting `PYTHONPATH` environment variable to the full path of _xdot.py_'s source tree, then running: python3 -m xdot You can also pass the following options: Usage: xdot.py [file] Options: -h, --help show this help message and exit -f FILTER, --filter=FILTER graphviz filter: dot, neato, twopi, circo, or fdp [default: dot] -n, --no-filter assume input is already filtered into xdot format (use e.g. dot -Txdot) -g GEOMETRY default window size in form WxH Shortcuts: Up, Down, Left, Right scroll PageUp, +, = zoom in PageDown, - zoom out R reload dot file F find Q quit P print Escape halt animation Ctrl-drag zoom in/out Shift-drag zooms an area If no input file is given then it will read the dot graph from the standard input. Embedding --------- See included `sample.py` script for an example of how to embedded _xdot.py_ into another application. [![Screenshot](https://raw.github.com/wiki/jrfonseca/xdot.py/xdot-sample_small.png)](https://raw.github.com/wiki/jrfonseca/xdot.py/xdot-sample.png) Download ======== * https://pypi.python.org/pypi/xdot * https://github.com/jrfonseca/xdot.py Links ===== * [Graphviz homepage](http://www.graphviz.org/) * [ZGRViewer](http://zvtm.sourceforge.net/zgrviewer.html) -- another superb graphviz/dot viewer * [dot2tex](https://github.com/kjellmf/dot2tex) -- python script to convert xdot output from Graphviz to a series of PSTricks or PGF/TikZ commands. * The [PyPy project](http://pypy.org/) also includes an [interactive dot viewer based on graphviz's plain format and the pygame library](https://morepypy.blogspot.com/2008/01/visualizing-python-tokenizer.html).