5

我正在使用diagrammeR grViz构建流程图。我想指定一些具有相同等级的节点的顺序。在下图中,我希望节点 1 位于中心而不是左侧。此外,我想在“节点 2”下划线,而不是“额外细节”。这是代码:

library("DiagrammeR")

grViz(" 
      digraph CFA {
      # Multiple level nodes
      node [shape = rectangle, color=CornflowerBlue]
      a [label = 'Node 1' ]; 

      node [shape = ellipse, color=CornflowerBlue]
      T1    [label = 'Node 2\\nextra detail']; 
      T2    [label = 'Node 3']; 

      {rank = same; a T1 T2}

      # Connect nodes with edges and labels
      a -> T1
      a -> T2
       }


      ")

在此处输入图像描述

任何帮助将非常感激。此外,如果有资源可以帮助我解决这些自定义问题diagrammeR,请提供链接。

4

1 回答 1

5

有几种方法可以对节点进行排序。这里最简单的可能是T2 -> a按此顺序(而不是a -> T2)拥有边,因此首先使用节点T2,然后使用dir=back来反转箭头。您可以使用html为节点标签添加下划线。(也必须使用 break, <br/>,而不是换行符,\n

grViz(" 
      digraph CFA {
      a [label = 'Node 1', shape = rectangle, color=CornflowerBlue ]; 

      node [shape = ellipse, color=CornflowerBlue]
      T1    [label = <Node 2 <br/> <u>extra detail</u>>]; 
      T2    [label = 'Node 3']; 

      {rank = same; a T1 T2}

      # Connect nodes with edges and labels
      a -> T1
      T2 -> a[dir=back]
       }

      ")

在此处输入图像描述


来自评论:有没有办法让节点中的一部分文本变成不同的颜色(例如,只是“额外的细节”,而不是“节点 2”)?

是的,从上面的 html 链接中,您可以“在 FONT.../FONT 范围内设置字体颜色”。因此,例如,将标签更改T1

label = <Node 2 <br/> <font color='red'> <u>extra detail</u> </font> >
于 2018-01-18T23:30:17.560 回答