Pretty Graphs
1 Priorities
2 API
rdag?
rdag->pict
6.12

Pretty Graphs

Vincent Nys

Racket has some really cool drawing tools. It has a flexible graph library. It has document producing DSL’s. By all logic, it should have good graph visualization tools. Unfortunately, it does not. Pretty Graphs aims to fill in that gap. Not right now, but eventually.

1 Priorities

The main goal of Pretty Graphs is to automatically generate picts from generic graphs (as per the graph library). Generating efficient layouts for all sorts of graphs is not an easy task, so this project should grow organically. Different types of graphs will be added based on users’ needs and the API will change over time (pull requests very welcome, see The Handbook of Graph Drawing and Visualization if you want to lend a hand).

The secondary goal is to be able to tweak produced graphs. This is nice to have, but tricky when the tweaks are very fine-grained.

2 API

procedure

(rdag? e)  boolean?

  e : any/c
Tests whether e is a single-rooted, directed acyclic graph.

procedure

(rdag->pict rdag vert->pict)  p:pict?

  rdag : rdag?
  vert->pict : (-> any/c p:pict?)
Converts a rooted, directed acyclic graph rdag into a pict. Vertices are converted using the user-supplied function vert->pict, but connections between vertices are computed.