All Projects → jrfonseca → Xdot.py

jrfonseca / Xdot.py

Licence: lgpl-3.0
Interactive viewer for graphs written in Graphviz's dot language.

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Xdot.py

Glance
A visual Haskell
Stars: ✭ 620 (+0.81%)
Mutual labels:  graphviz, gtk
Aws Plantuml
PlantUML sprites, macros, and other includes for AWS components.
Stars: ✭ 565 (-8.13%)
Mutual labels:  graphviz
Akira
Native Linux App for UI and UX Design built in Vala and GTK
Stars: ✭ 4,597 (+647.48%)
Mutual labels:  gtk
Aws Security Viz
Visualize your aws security groups.
Stars: ✭ 511 (-16.91%)
Mutual labels:  graphviz
Gtksharp
.NET wrapper for Gtk and other related libraries
Stars: ✭ 439 (-28.62%)
Mutual labels:  gtk
Madge
Create graphs from your CommonJS, AMD or ES6 module dependencies
Stars: ✭ 5,635 (+816.26%)
Mutual labels:  graphviz
Gographviz
Parses the Graphviz DOT language in golang
Stars: ✭ 416 (-32.36%)
Mutual labels:  graphviz
Jde
Linux desktop environment built with HTML5, CSS, JavaScript and Python.
Stars: ✭ 591 (-3.9%)
Mutual labels:  gtk
Systemd Manager
A systemd service manager written in Rust with the GTK-rs wrapper and direct integration with dbus
Stars: ✭ 552 (-10.24%)
Mutual labels:  gtk
Taffybar
A gtk based status bar for tiling window managers such as XMonad
Stars: ✭ 502 (-18.37%)
Mutual labels:  gtk
Webkit
Official git mirror of the WebKit repository, https://svn.webkit.org/repository/webkit, future canonical repository.
Stars: ✭ 495 (-19.51%)
Mutual labels:  gtk
Graphvizanim
A tool to create animated graph visualizations, based on graphviz.
Stars: ✭ 441 (-28.29%)
Mutual labels:  graphviz
Celluloid
A simple GTK+ frontend for mpv
Stars: ✭ 541 (-12.03%)
Mutual labels:  gtk
Nigui
Cross-platform desktop GUI toolkit written in Nim
Stars: ✭ 430 (-30.08%)
Mutual labels:  gtk
Sauron Native
Truly cross platform, truly native. multiple backend GUI for rust
Stars: ✭ 587 (-4.55%)
Mutual labels:  gtk
Graphvizonline
Let's Graphviz it Online
Stars: ✭ 417 (-32.2%)
Mutual labels:  graphviz
Git Big Picture
Git — the big picture
Stars: ✭ 456 (-25.85%)
Mutual labels:  graphviz
Pydot
Python interface to Graphviz's Dot language
Stars: ✭ 518 (-15.77%)
Mutual labels:  graphviz
Scabbard
🗡 A tool to visualize Dagger 2 dependency graphs
Stars: ✭ 615 (+0%)
Mutual labels:  graphviz
Graphqlviz
GraphQL Server schema visualizer
Stars: ✭ 591 (-3.9%)
Mutual labels:  graphviz

About xdot.py

xdot.py is an interactive viewer for graphs written in Graphviz's dot language.

It uses internally the GraphViz's xdot output format as an intermediate format, Python GTK bindings, and Cairo 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: 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, and join the new mailing list.

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:

Screenshots

Profile 1 Screenshot Profile 2 Screenshot Control Flow Graph

Requirements

Windows users

Download and install:

Debian/Ubuntu users

Run:

apt install gir1.2-gtk-3.0 python3-gi python3-gi-cairo python3-numpy 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
  T                         toggle toolbar
  Escape                    halt animation
  Ctrl-drag                 zoom in/out
  Shift-drag                zooms an area

If - is given as input file then xdot.py 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

Download

Links

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].