R 图在从 r 变量读取文本时使用 html 进行格式化

2024-05-01

我正在使用 R 包绘图器创建流程图。为了获得所需的格式(粗体、项目符号、左对齐),我可以在 html 中编写节点标签。但是,我还想通过调用 R 中的变量来填充一些文本,但我不知道如何同时执行这两项操作(html 格式化 + 调用 R 变量)。

在此代码片段中,html 格式有效,但不是打印分配给变量“text_var”的字符串,而是打印字符串“text_var”。

library(DiagrammeR)

text_var = 'Some text'

grViz("digraph flowchart {
      # Node definitions
      node [fontname = Helvetica, shape = box]        
      tab1 [label = <<b> Node 1 </b> <br ALIGN = 'LEFT' /> &#8226; text_var  <br ALIGN = 'LEFT' /> 
                    >]
      tab2 [label = 'Node 2']

      # Edge definitions
      tab1 -> tab2 


      }")

在此代码片段中,我打印分配给变量“text_var”的字符串,但没有 html。

library(DiagrammeR)

text_var = 'Some text'

grViz("digraph flowchart {
      # Node definitions
      node [fontname = Helvetica, shape = box]        
      tab1 [label = '@@1']
      tab2 [label = 'Node 2']

      # Edge definitions
      tab1 -> tab2 
}

      [1]: paste0('Node 1 \\n ', text_var)


      ")

所需的结果是第二个示例中的文本以及第一个示例中的格式。谢谢你!


虽然艾伦·卡梅伦的解决方案 https://stackoverflow.com/a/59723247/1086688有效,也可以使用Graphviz 替换 http://rich-iannone.github.io/DiagrammeR/graphviz_and_mermaid.html#substitution.

然而,我发现实现相当有问题,尽管@@1应该可以在下面的示例中工作,我发现在我关闭它之前,CPU 已完全使用了 3 分钟以上。@@1-1似乎有效。

text_var = 'Some text'

grViz("
  digraph flowchart {
    # Node definitions
    node [fontname = Helvetica, shape = box]        
    tab1 [label = <
                   <b>Node 1</b>
                   <br ALIGN = 'LEFT' /> 
                     &#8226; @@1-1
                   <br ALIGN = 'LEFT' /> 
                  >]
    tab2 [label = 'Node 2']

    # Edge definitions
    tab1 -> tab2 
  }
  [1]: text_var"
)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

R 图在从 r 变量读取文本时使用 html 进行格式化 的相关文章

随机推荐