【问题标题】:diagrammeR specifying node order and formatting textdiagrammeR 指定节点顺序和格式化文本
【发布时间】:2018-01-18 23:13:56
【问题描述】:

我正在使用diagrammeRgrViz构建流程图。我想指定一些具有相同等级的节点的顺序。在下图中,我希望节点 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 中有资源可以帮助我解决这些自定义问题,请提供链接。

【问题讨论】:

    标签: r diagrammer


    【解决方案1】:

    有几种方法可以对节点进行排序。这里最简单的可能是按此顺序拥有边缘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> >
    

    【讨论】:

    • 感谢您的提示。 html格式的链接非常有帮助。同样,有没有办法使节点中的部分文本具有不同的颜色(例如,只是“额外的细节”,而不是“节点 2”)?
    • 太好了,效果很好。感谢您快速开始格式化!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-01-19
    • 1970-01-01
    • 2017-06-29
    • 1970-01-01
    • 1970-01-01
    • 2020-07-23
    • 2015-09-17
    相关资源
    最近更新 更多