r - DiagrammeR 和 graphviz

标签 r graphviz diagrammer

我正在尝试从以下位置重现流程图:

http://www.consort-statement.org/consort-statement/flow-diagram

使用 R 中的 DiagrammeR 包。下面是我到目前为止的位置,但我无法让“排除”框与空白节点水平对齐。有什么建议吗?

```{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
}") 
```

这是到目前为止的结果图:

enter image description here

最佳答案

我没有使用 RMarkdown 但已经检查了浏览器,我相信这也应该在您的设置中“按原样”工作。重点只是将 blankexcluded 放在同一等级。不需要你试过的子图:

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;
}

产量

enter image description here

关于r - DiagrammeR 和 graphviz,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46750364/

相关文章:

r - 使用指定数量的单元格构建一个方形矩阵

R 重新排列数据帧 : some rows to columns

r - 美人鱼中的线连接(而不是箭头)

r - 美人鱼图 : Adjust white space around graph

r - 如何在 R 中导出制图师的图像

r - 如何在R的数据框中按日期每8天获取值的总和

r - 创建一个 fiddle 图,其中 fiddle 图和箱线图在 ggplot2 中具有不同的颜色

doxygen - 从 doxygen 获取类层次结构点文件

python - Pyreverse:生成 uml 报告时如何添加方法和属性的返回类型?

graphviz - graphviz neato "failure to create cairo surface"