Here, we’ll provide a brief discussion how flowdiagramr differs from and can interact with other packages.


The diagram package is - as far as we are aware - most similar to flowdiagramr. The largest difference is that flowdiagramr uses ggplot2 as the graphing engine, rather than base R. This means that flowdiagramr relies on the data frame structure of ggplot2, which is rapidly becoming common for most applications. Thus, flowdiagramr is in some sense the “ggplot2 version” of diagram. In addition, the way flowdiagramr is structured means that you can start creating your diagrams with the package commands, then switch to manual edits by adding ggplot2 code if needed. This is not easily possible with diagram.


The DiagrammeR package is the most flexible diagramming package available for R. However, it is primarily for acyclic diagrams (no feedback or interaction terms) and it requires specifying models in non-R syntax (DOT language). It also requires knowledge of Graphviz and is not quite ggplot2 compatible. We considered using DiagrammeR to get the diagrams we wanted, but the fact that a lot of models have feedback loops, which are not easily supported by DiagrammeR made us decide that we couldn’t use it and had to create a new package.


There are other packages available that can draw graphs, e.g. dagitty for directed acyclic graphs or igraph for network graphs. We are not aware of any package that can easly create the kind of flow diagrams that flowdiagramr is intended to produce (otherwise we wouldn’t have written the package).

If you know of other packages that are worth pointing out, please let us know.