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

DiagrammeR: How could I use a different color for some nodes of a flowchart?

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

考虑以下可重现的示例:

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 应为红色。流程图的其余部分应保持绿色。不幸的是,我找不到解决这个问题的方法。

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

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

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