代码之家  ›  专栏  ›  技术社区  ›  TheGoat

Diagrammer中使用有向图的流程图

  •  0
  • TheGoat  · 技术社区  · 2 年前

    我正在尝试DiagrammeR来构建一些流程图,我很想知道我是否可以包括来自辅助数据帧(从SQL数据库中提取的数据)的值。

    我使用的是 documentation 我想添加一个来自Iris数据集的随机值。

    我想补充一点 iris[2,4] 作为 ELEPHANT 节点,这可能吗?

    library(DiagrammeR)
    grViz("
    digraph {
    
      # graph attributes
      graph [overlap = true]
    
      # node attributes
      node [shape = box,
            fontname = Helvetica,
            color = blue]
    
      # edge attributes
      edge [color = gray]
    
      # node statements
      A; B; C; D; ELEPHANT
      F [color = black]
    
      # node attributes
      node [shape = circle,
            fixedsize = true,
            width = 0.9]
    
      # node statements
      1; 2; 3; 4; 5; 6; 7; 8
    
      # edge statements
      A->1; B->2                   // gray
      B->3 [color = red]           // red
      B->4                         // gray
      C->A [color = green]         // green
      1->D; ELEPHANT->A; 2->4; 1->5; 1->F // gray
      ELEPHANT->6; 4->6; 5->7; 6->7       // gray
      3->8 [color = blue]          // blue
    }
    ")
    
    1 回复  |  直到 2 年前
        1
  •  0
  •   TheGoat    2 年前

    我相信我要找的是一个参数化的图表,这里有详细的说明 https://mikeyharper.uk/flowcharts-in-r-using-diagrammer/

        2
  •  0
  •   Grasshopper_NZ    2 年前

    您可以通过添加2个简单步骤来实现这一点,请参阅下面的示例代码和注释:

    library(DiagrammeR)
    grViz("
    digraph {
    
      # graph attributes
      graph [overlap = true]
    
      # node attributes
      node [shape = box,
            fontname = Helvetica,
            color = blue]
    
      # edge attributes
      edge [color = gray]
    
      # node statements
      A; B; C; D; ELEPHANT[label = '@@1']  # Here calls label from 1 below
      F [color = black]
    
      # node attributes
      node [shape = circle,
            fixedsize = true,
            width = 0.9]
    
      # node statements
      1; 2; 3; 4; 5; 6; 7; 8
    
      # edge statements
      A->1; B->2                   // gray
      B->3 [color = red]           // red
      B->4                         // gray
      C->A [color = green]         // green
      1->D; ELEPHANT->A; 2->4; 1->5; 1->F // gray
      ELEPHANT->6; 4->6; 5->7; 6->7       // gray
      3->8 [color = blue]          // blue
    }
    
    [1]:  paste0('iris[2, 4] is ', iris[2, 4])  # here is the label and value
    ")
    

    你应该能够看到相同的结果 this