diagrammeR指定节点顺序和格式化文本

5

我正在使用diagrammeR grViz构建一个流程图。我想指定一些具有相同排名的节点的顺序。在下面的图表中,我想将Node 1放在中心而不是左侧。此外,我想要"Node 2"被下划线,但不包括"extra detail"。以下是代码:

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 中帮助我的话,请包括一个链接。

enter image description here

1个回答

5

有几种方法可以对节点进行排序。这里最简单的方法可能是按照顺序将边T2 -> a(而不是a -> T2)放置,以便节点T2首先出现,然后使用dir=back来反转箭头。您可以使用html来下划线节点标签。(还必须使用换行符<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]
       }

      ")

在这里输入图片描述


来自评论: 有没有办法让节点中的一部分文字变成不同的颜色(例如只有"extra detail"是不同的,而"Node 2"不是)?

是的,从上面的html链接中可以看到可以"在FONT.../FONT的范围内设置字体颜色"。例如,将T1的标签更改为:

label = <Node 2 <br/> <font color='red'> <u>extra detail</u> </font> >

谢谢你的建议。HTML格式化的链接非常有用。在同样的问题上,有没有办法使节点中的一部分文本变成不同的颜色(例如只是“额外细节”,而不是“节点2”)? - Steve
1
太好了,运行得很顺利。感谢你在格式化方面的帮助! - Steve

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接