November 12, 2015

Theory Maker - technical details

Theory Maker is a free and simple web app for making diagrams of theories of change, logframes, etc. Its special feature is that you can also create boxes to group the pieces of your network, for example to mark off different phases, regions or stakeholders.

You can read more about it here. This page is about the technical features.

This kind of directed graph with additional boxes is drawn using the relatively undocumented cluster” feature of graphviz. This is the only toolkit I know of which lets you draw a network with hierarchical boxes around the nodes. The site is running on shiny server, hosting a single R script. Shiny provides the interactivity. Originally, this script took a .csv file as input, with a row for each node and a column for node properties. Now I have made it a bit easier - you can provide a text input instead of a spreadsheet, which is converted into an equivalent matrix, which is then converted into a .dot file. Finally, the .dot file is sent to by Graphviz’s dot which produces the diagram and Shiny displays it reactively, i.e. live.

It took me the best part of a year to actually develop the main R script in spare half-hours, and it is not part of my plan to play at being a developer. So I paid for some help from Ali on upwork.com to turn it into a Shiny application. Thanks Ali!

It is run by just a single script, open source of course.

There is also a markdown test script.

Specification of global attributes

There are two kinds of global attributes - defaults for things like node color, edge width, etc etc, and graph-level attributes: ratio, label (we should call this title, not label), labeljust, rankdir, ranksep, addID.

The user can specify global attributes either in the function call and/or in the text, i.e. if the user is running the script locally, they can do this:

makeToC(backgroundcolor="pink",tex="
a
")

or, in the online app, just this:

a
backgroundcolor=pink

This way of specifying global attributes in the input text already works in principle but it will need checking when all the attributes are tidied up as above.


r software quicktoc evaluation mande theorymaker


Previous post
Judea Pearl I only just came across the work of Judea Pearl (which shows how ignorant I am because he won the Turing Prize in 2011). I think his work is
Next post
A PDF workflow which kills no kittens I have spent really decades trying to find a decent workflow for storing, annotating and referencing research documents, mostly but not always PDFs.


This blog by Steve Powell is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License, syndicated on r-bloggers and powered by Blot.
Privacy Policy
.