2

我想用DiagrammeRR中的包创建一个流程图。流程图的颜色应该根据每个变量名开头的标识符来设置。

考虑以下可重现的示例:

library("DiagrammeR")

# Create a node data frame (ndf)
ndf <- create_node_df(n = 4,
                      label = c("^color", "aaa", "bbb", "ccc"))

# Create an edge data frame (edf)
edf <- create_edge_df(from = c(1, 2, 3, 3),
                      to = c(4, 3, 1, 4))

# Create a graph with the ndf and edf
graph <- create_graph(nodes_df = ndf,
                      edges_df = edf) %>%
  set_global_graph_attrs(
    attr = c("style", "fillcolor"),
    value = c("filled", "darkolivegreen3"),
    attr_type = c("node", "node"))

# Create a PDF file for the graph (`graph.pdf`)
graph %>%
  render_graph()

在此处输入图像描述

使用该set_global_graph_attrs功能,我可以设置全局颜色。我想在开头用 ^ 为每个变量着色为红色。在示例中,变量 ^color 应为红色。流程图的其余部分应保持绿色。不幸的是,我无法找到解决此问题的方法。

问题:如何为流程图的某些节点使用不同的颜色?

4

1 回答 1

2

您可以像这样单独设置节点属性。

ndf$fillcolor = as.character(NA)
ndf$fillcolor[grep('\\^', ndf$label)] = 'red'

在此处输入图像描述

于 2018-02-06T13:15:04.673 回答