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

问题描述 投票:2回答:1

我想用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()

enter image description here

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

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

r graph colors flowchart diagrammer
1个回答
2
投票

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

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

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.