yED graph editor

Here I’m going to make some notes about using yED graph editor for Theory of Change diagrams. I’ll add to it as I find out more.

TL;DR: Seems like a very useful tool for Theories of Change.

Online version

There’s an online version. It has plenty of functionality but you don’t seem to be able to save to a public address, so that you could for example share a link to a diagram with someone else. So the main advantage is just that you don’t have to bother to install anything, rather than that you could work or share collaboratively. (I might be wrong on this.)

Offline version

I installed the offline version for Windows. (Looks like it’s available for Mac and Linux too.) I had to install as administrator because otherwise the installation routine said I didn’t have the correct rights.

Important for Theories of Change:

Various automatic layouts, e.g. hierarchical

It allows you to put nodes inside groups, and these can be nested, and also opened & closed - good for complicated diagrams.

Supports plenty of unicode symbols and emojis (I haven’t found any which aren’t supported.)

You can import node and edge lists from xls and from trivial graph format. That’s pretty important when you’ve got a lot of text. Looking at the diagrams which people make at theorymaker.info, lots of text is a pretty common problem - though I’m not a fan of it myself.


It’s pretty powerful.

Some features:

There is a Properties panel which allows you to change the properties of a multiple selection of nodes.

Cut, copy and paste.

Multiple undo.

You can easily create non-standard edges.

Not implemented or I’ve not worked out how to do it:

I’ve not worked out how to make nodes auto-fit to the width of the text - you have to do this manually with tools/fit node to label

I’d like to be able to inter-operate with R. yED can write graphml and the R package igraph should be able to import it, but the import fails with warnings. Found the same complaint on StackOverflow but no solution.


It’s a bit clunky to add a lot of material initially. There is very limited support for keyboard shortcuts, basically you can press Ctrl+W to add a child node or Ctrl+D to duplicate one.

In my opinion it is really important to maximise use of space, i.e. text needs to be as big as possible without too much white space, so you can actually read the diagram e.g. when pasted into a document. yED is not so good on this.


I did try Lucidchart, which is free for small diagrams with up to 60 entities - but it doesn’t have groups and doesn’t seem to re-route connectors.

Comparison with my own Theorymaker apps:

For me, it’s really important to be able to put nodes inside groups, and that these can be nested. (Actually I don’t nest groups very often at all, but as Theorymaker, my Logic of Theories of Change” ;-(), allows for it, I need a graphing app which can do this too.) I couldn’t find any suitable graphing app which could do this easily, which is one reason why I started creating my drag-and-drop app at i.theorymaker.info. Perhaps I was wasting my time, as yED can do it, at least it can, now in 2018 ;-(

The comparison with my text-based app is more interesting. One thing yED can do is easily draw arrows to and from groups, which theorymaker.info can’t do without a hack.

(to be continued)

Up next Examples of trivial graph format Can be imported by yED. The simplest version is this: etc. This version allows you to have longer node labels: (a rbind.fill for 1-dimensional tables in r I have two one-dimensional frequency tables resulting from say the baseline and endline of a survey, recording say membership of 5 age groups. The
Latest posts Making notes on PDFs without computer or paper Publications causal-map Causal Map intro Causal Mapping - an earlier guide The walk to school in Sarajevo Glitches Draft blog post for AEA365 Theory Maker! Inventory & analysis of small conservation grants, C&W Africa - Powell & Mesbach! Lots of charts! Answering the “why” question: piecing together multiple pieces of causal information rbind.fill for 1-dimensional tables in r yED graph editor Examples of trivial graph format Using attr labels for ggplot An evaluation puzzle: “Talent show” An evaluation puzzle: “Mobile first” An evaluation puzzle: “Many hands” An evaluation puzzle: Loaves and fishes An evaluation puzzle: “Freak weather” An evaluation puzzle: “Billionaire” Using Dropbox for syncing Shiny app data on Amazon EC2 Progress on the Causal Map app Articles and presentations related to Causal Maps and Theorymaker Better ways to present country-level data on a world map: equal-area cartograms A starter kit for reproducible research with R A reproducible workflow for evaluation reports Welcome to the Wiggle Room Realtime comments on a Theory of Change Responses to open questions shown as tooltips in a chart A panel on visualising Theories of Change for EES 2018?