问题描述
您好,我正在尝试根据表中的列(如果可能)为我的节点着色。我正在创建的程序将根据 CVS 文件设置列但不同数量的行。我希望能够在读取文件后自动为节点着色。我不太确定如何做到这一点。到目前为止,这是我的代码。如您所见,我为每个节点手动输入了颜色。任何可以帮助我的网站的建议或链接都会对我有很大帮助,谢谢。
library(tidyverse)
library(DiagrammeR)
library(dplyr)
library(igraph)
e <- read.csv("edges.csv",stringsAsFactors = FALSE)
n <- read.csv("nodes.csv",stringsAsFactors = FALSE)
e$to <- as.character(e$to)
create_graph() %>%
add_nodes_from_table(table=n,label_col = task) %>%
add_edges_from_table(table=e,from_col = from,to_col = to,from_to_map = label) %>%
set_node_attrs(
node_attr = "shape",values = "square")%>%
set_node_attrs(
node_attr = "fixedsize",values = FALSE) %>%
set_node_attrs(
node_attr = "fillcolor",values = "#add8e6",nodes = c(1)) %>%
set_node_attrs(
node_attr = "fillcolor",values = "#07B8B4",nodes = c(2,3,4)) %>%
set_node_attrs(
node_attr = "fillcolor",values = "#A7EEC9",nodes = c(5,6,7,8,9,10)) %>%
set_node_attrs(
node_attr = "fillcolor",values = "#FC6C85",nodes = c(11)) %>%
set_edge_attrs(
edge_attr = color,values = "#7D7D7D") %>%
render_graph(layout = "tree")
e <- structure(list(from = c("Parent 1\\nIdaho\\nAge 23\\n130 lbs","Parent 1\\nIdaho\\nAge 23\\n130 lbs","Child 1\\nIowa\\nAge 7\\n85 lbs","Child 3\\nIdaho\\nAge 6\\n70 lbs","Stuffy 3\\nbrown\\nMonkey"),to = c("Child 1\\nIowa\\nAge 7\\n85 lbs","Child 2\\nKansas\\nAge 7\\n80 lbs","Stuffy 1\\nRed\\nBear","Stuffy 2\\nWhite\\nCat","Stuffy 3\\nbrown\\nMonkey","Stuffy 4\\nRainbow\\nUnicorn","Stuffy 5\\nGreen\\nSnake","Stuffy 6\\nPurple\\nElephant","Cat 1\\nBlack&White")),row.names = c(NA,-10L),class = "data.frame")
n <- structure(list(task = c("Parent 1\\nIdaho\\nAge 23\\n130 lbs","Cat 1\\nBlack&White"
)),class = "data.frame",-11L))
cols <- structure(list(colors = c("#add8e6","#0078aa","#00a0b0","#00c49e","#8be381","#00baa5","#00a7bb","#005bbe","#663399","#a15497"
)),-10L))
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)