Reputation: 858
I am trying to reproduce the flow diagram from:
http://www.consort-statement.org/consort-statement/flow-diagram
using the DiagrammeR
package from R. Below is where I got so far, but I can't get the "excluded" box to be horizontally aligned with the blank node. Any suggestions?
```{r, echo=FALSE, warning=FALSE, results='hide', message=FALSE}
library(pacman)
p_load(DiagrammeR)
grViz("digraph a_nice_graph {
node [fontname = Helvetica, shape = box, width = 4, fillcolor = LightSalmon, style = filled]
assessed [label = 'Assessed for Elibibility (n = )']
randomized [label = 'Randomized (n = )']
allocatedA [label = 'Allocated to intervention A (n = )']
allocatedB [label = 'Allocated to intervention B (n = )']
lostA [label = 'Lost to follow-up (n = )']
lostB [label = 'Lost to follow-up (n = )']
analyzedA [label = 'Analyzed (n = )']
analyzedB [label = 'Analyzed (n = )']
blank[label = '', width = 0.01, height = 0.01]
excluded[label = 'Excluded (n = )']
subgraph cluster_0 {
rankdir = TD
color = white
assessed -> blank [arrowhead = none]
blank -> randomized
}
subgraph cluster_1 {
rankdir = LR
color = white
blank -> excluded
}
randomized -> {allocatedA allocatedB}
allocatedA -> lostA
allocatedB -> lostB
lostA -> analyzedA
lostB -> analyzedB
}")
```
Here is the resulting plot thus far:
Upvotes: 4
Views: 1663
Reputation: 7659
I'm not using RMarkdown but have checked with the browser, I believe this should work "as is" in your setup as well. The point is just putting blank
and excluded
into the same rank. No need for the subgraphs you have tried:
digraph a_nice_graph
{
node [fontname = Helvetica, shape = box, width = 4, fillcolor = LightSalmon, style = filled]
assessed [label = 'Assessed for Elibibility (n = )']
randomized [label = 'Randomized (n = )']
allocatedA [label = 'Allocated to intervention A (n = )']
allocatedB [label = 'Allocated to intervention B (n = )']
lostA [label = 'Lost to follow-up (n = )']
lostB [label = 'Lost to follow-up (n = )']
analyzedA [label = 'Analyzed (n = )']
analyzedB [label = 'Analyzed (n = )']
blank[label = '', width = 0.01, height = 0.01]
excluded[label = 'Excluded (n = )']
{ rank = same; blank excluded }
assessed -> blank[ dir = none ];
blank -> excluded[ minlen = 3 ];
blank -> randomized;
randomized -> {allocatedA allocatedB};
allocatedA -> lostA;
allocatedB -> lostB;
lostA -> analyzedA;
lostB -> analyzedB;
}
yields
Upvotes: 5