【问题标题】:diagrammer - how can I add arms to my flowchart?diagrammer - 如何在我的流程图中添加武器?
【发布时间】:2019-09-19 15:27:50
【问题描述】:

对于我的流程图,我有一个详细说明数据流的垂直图表。但是,在向下箭头上,我想添加侧箭头来描述丢失数据的去向。我该怎么做呢?我在任何文档和示例中都看不到它,因为它往往涉及更复杂的事情,而且我知道这是一项非常基本的任务!

library(DiagrammeR)

grViz("digraph flowchart {
  # node definitions with substituted label text
  node [fontname = Helvetica, shape = rectangle, fixedsize = false, width = 1] 
  1 [label = 'data (100%)']
  2 [label = 'data  (90.4%)']
  3 [label = 'data  \\ndata (83.3%)']
  4 [label = 'data (66%)']


  7 [label = 'data (100%)']
  8 [label = 'data  (74.4%)']
  9 [label = 'data  (69.6%)']
  10 [label = 'data  (55.4%)']

  1 -> 2 -> 3 -> 4;

  7 -> 8 -> 9 -> 10
}      ")

这给了我两个并排的面板,但我希望箭头从向下的箭头上出来,我可以在其中放置 n 以表示丢失的数据。

【问题讨论】:

    标签: r data-visualization graphviz diagrammer


    【解决方案1】:

    标准技巧是创建不可见的虚拟节点,然后将每条边分成两部分:1) 源 -> 虚拟,以及 2) 虚拟 -> 目标:

    library(DiagrammeR)
    
    grViz("digraph flowchart {
      # node definitions with substituted label text
      node [fontname = Helvetica, shape = rectangle, fixedsize = false, width = 1] 
      1 [label = 'data (100%)']
      2 [label = 'data  (74.4%)']
      3 [label = 'data  (69.6%)']
      4 [label = 'data  (55.4%)']
      m1 [label = 'missing (25.6%)']
      m2 [label = 'missing (4.8%)']
    
      node [shape=none, width=0, height=0, label='']
      p1 -> 2; p2 -> 3 -> 4;
      {rank=same; p1 -> m1}
      {rank=same; p2 -> m2}
    
      edge [dir=none]
      1 -> p1; 2 -> p2;
    }")
    

    出于演示目的,我缩短了您的示例。在上面,p1p2 是不可见的虚拟节点。共有三组边:

    • 从虚拟节点到目标的下向边(例如,p1 -> 2
    • 从虚拟节点到“缺失”节点的水平定向边。边缘方向通过rank=same强加。
    • 从源到虚拟节点的无向​​边

    【讨论】:

    猜你喜欢
    • 2021-12-17
    • 1970-01-01
    • 2022-12-05
    • 2017-04-09
    • 1970-01-01
    • 1970-01-01
    • 2016-04-04
    • 1970-01-01
    • 2018-07-16
    相关资源
    最近更新 更多