Skip to content

Instantly share code, notes, and snippets.

View steveroush's full-sized avatar

steveroush

  • nope
  • colorado, usa
View GitHub Profile
@steveroush
steveroush / multiGraph.sh
Created October 10, 2024 02:48
Graphviz - create layout variations
# set -x
T=svg
usage() { # Function: Print a help message.
echo "Usage: $0 [ -G|N|E GraphvizOption ] [ -L layoutEngine ] [ -T outputFormat ] myFile.gv" 1>&2
}
exit_abnormal() { # Function: Exit with error.
usage
exit 1
}
@steveroush
steveroush / addGrid.gvpr
Created September 22, 2024 20:49
add a grid to any Graphviz graph
/**************************************************************************
add a grid to a graph in .dot format
**************************************************************************/
BEGIN{
int i, Indx, bcnt, LR;
string Type, Val, Gcolor[], Gstyle[], Gsize[], tmpstr;
string Hcolor, Vcolor, Hstyle, Vstyle, gridType, gridAlign;
float Hsize, Vsize, deltaX, deltaY, minX, minY, maxX, maxY;
@steveroush
steveroush / roundedOrtho.gvpr
Last active August 26, 2024 16:05
Graphviz - round ortho edges
/*****************************************************
Name: roundedOrtho.gvpr
As of Date: 2024-08-25 20:24:11
Description: when possible, changes ortho edges to round the squared edges
Usage: dot -Gsplines=ortho myFile.gv | gvpr -cf roundedOrtho2.gvpr|neato -n2 -T...
@steveroush
steveroush / justifyRanks.gvpr
Last active August 20, 2024 22:06
reposition nodes within a rank (dot / Graphviz)
/**********************************************************************
justify nodes that are on the same rank
- add a new "rankjustify" to any nodes you want "justified"
- legal values: t,b,l,r,min,max (for top, bottom, left, right, min, and max)
usage:
dot myFile.gv | gvpr -cf justifyRanks.gvpr | neato -n ...
**********************************************************************/
@steveroush
steveroush / addGrid.gvpr
Last active August 18, 2024 20:30
add a grid to any Graphviz graph
/**************************************************************************
add a grid to a graph in .dot format
**************************************************************************/
BEGIN{
int i, Indx, bcnt, LR;
string Type, Val, Gcolor[], Gstyle[], Gsize[], tmpstr;
string Hcolor, Vcolor, Hstyle, Vstyle, gridType, gridAlign;
float Hsize, Vsize, deltaX, deltaY, minX, minY, maxX, maxY;
@steveroush
steveroush / testing.md
Last active August 3, 2024 21:55
Transforming a Graphviz graph to 3 swimlanes

Converting a dot output to swimlanes

SWIMclustRankdirOff.mp4

@steveroush
steveroush / swimlane.gvpr
Last active July 17, 2024 21:38
a GVPR program that adds a swimlane feature to Graphviz (dot)
/*************************************************************************
swimlanes
- for more info on swim lanes: https://en.wikipedia.org/wiki/Swim_lane
- new attributes, all at the parent cluster-level:
- swimlanePool=true/false/[0-9]+ - turns on swimlane algorithm
- if having nested swimlanes is desirable, true/false is
insufficient. Instead, use swimlane=someuniquename
- swimlaneequalSize=true/false all lanes given same width, or width determined "naturally" by dot
@steveroush
steveroush / swapTailHead.gvpr
Created May 31, 2024 19:32
Graphviz - a program to swap head & tail of edges
/****************************************************************
swapHeadTail.gvpr - swap tail & head of edge(s)
(only seems to have "real" effect when using dot)
replaces edges with tail & head swapped
and (unless using -a0 option) "fixes" all the attribures that are associated with head or tail
to swap ALL edges, either add
- edge [swap=1] to your myFile.gv, then
@steveroush
steveroush / gvlint.gvpr
Last active June 1, 2024 00:44
gvlint - a "lint" program for Graphviz files
/********************************************************************
gvlint.gvpr - lint program for Graphviz input
USAGE:
gvpr -f gvlint.gvpr # just produces a "report" (assumes dot)
gvpr -cf gvlint.gvpr # report & reformatted input
gvpr -a neato -f gvlint.gvpr # report assuming neato attributes
gvpr -a S -f gvlint.gvpr myfile.gv # skip "pos not defined ..."
gvpr -a "neato A" -f gvlint.gvpr # report assuming neato attributes
# and show all attributes used
@steveroush
steveroush / gvstats.gvpr
Created February 17, 2024 02:10
A GVPR program that reports information about Graphviz files
BEGIN{
int clusterCnt, cHtmlCnt;
graph_t aGraph;
string printBuf;
//////////////// help /////////////////////////////////////////////
string help="
gvstats.gvpr :
a GVPR program that provides information about Graphviz input files
- the file name
- the layout engine (if set)