DiagrammeR:强制水平箭头为直线而不是对角线

DiagrammeR: Force horizontal arrows to be straight rather than diagonal

我正在尝试重新创建此示例作为我正在处理的项目的流程图的测试:https://dannyjnwong.github.io/STROBE-CONSORT-Diagrams-in-R/

该页面显示的代码应生成如下所示的图表:https://dannyjnwong.github.io/figures/2018-02-12-STROBE-CONSORT-Diagrams-in-R/STROBE.png

然而,当我在 RStudio 中尝试 运行 完全相同的代码时,我得到了这个,水平箭头不会呈现为水平,而是向下弯曲:

有什么方法可以使这些箭头像在 github 示例中一样是笔直和水平的吗?它可能与 DiagrammeR 的版本有关吗? post 使用 DiagrammeR_0.9.2 而我的使用 DiagrammeR_1.0.6.1 我想尽可能避免回滚我的包版本。谢谢!

我使用带有 DiagrammeR 的正交样条在我的流程图中获得水平线。我尝试在您的示例中使用 add_global_graph_attrscreate_graph,它产生了水平线但没有保持体系结构完整。

这是我制作类似图表的方法。为了方便在流程图中插入特定值和文本,我使用 glue。也许这对你有帮助。

library(DiagrammeR)
library(glue)

n <- 1000
exclude1 <- 100
exclude2 <- 50
include1 <- n - exclude1 - exclude2

grViz(
  glue("digraph my_flowchart {{ 
      graph[splines = ortho]
      node [fontname = Helvetica, shape = box, width = 4, height = 1]
      
        node1[label = <Total available patients<br/>(n = {n})>]
                
        blank1[label = '', width = 0.01, height = 0.01]
        excluded1[label = <Excluded because of<br/>exclusion criteria (n={exclude1})>]
        
        node1 -> blank1[dir = none];
        blank1 -> excluded1[minlen = 2];
        {{ rank = same; blank1 excluded1 }}
        
        blank2[label = '', width = 0.01, height = 0.01]
        excluded2[label = <Excluded because of missing values (n={exclude2})>]
        
        blank1 -> blank2[dir = none];
        blank2 -> excluded2[minlen = 2];
        {{ rank = same; blank2 excluded2 }}
        
        node2[label = <Included for analysis<br/>(n={include1})>]
        blank2 -> node2;
        
        node3[label = <Data linked with<br/>external dataset>]
        node2 -> node3;
     }}")
)

注意:为构造 CONSORT 图做出了一些努力: