Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在visNetwork中为节点添加不同颜色并移除标签_R_Visnetwork - Fatal编程技术网

在visNetwork中为节点添加不同颜色并移除标签

在visNetwork中为节点添加不同颜色并移除标签,r,visnetwork,R,Visnetwork,试图在R中可视化网络,我有一个边和节点列表。节点列表如下所示:“id”、“标签”和“类型”: 我想根据节点的类型为其着色。到目前为止,我通过嵌入if语句尝试了这一点,但这似乎不起作用 visNetwork(nodes, edges) %>% visIgraphLayout(layout = "layout_in_circle") %>% visNodes(label = NULL,( if (nodes$type ="gimn&qu

试图在R中可视化网络,我有一个边和节点列表。节点列表如下所示:“id”、“标签”和“类型”:

我想根据节点的类型为其着色。到目前为止,我通过嵌入if语句尝试了这一点,但这似乎不起作用

visNetwork(nodes, edges) %>% 
  visIgraphLayout(layout = "layout_in_circle") %>% 
  visNodes(label = NULL,(
    if (nodes$type ="gimn") { 
      color= "slategrey"
    } else if (nodes$type ="szakgimn") {
      color="pink"
    } else if  (nodes$type ="ált_isk") {
      color="black"
    } else {
      color ="tomato"
    })) %>% 
  visEdges(arrows = "middle")

如何根据节点的类型为节点指定颜色?另外,如何从绘图中删除标签?(上面的代码似乎也不适用于此。)

我想您可以尝试使用嵌套的
ifelse
根据下面的类型定义颜色

visNetwork(nodes, edges) %>%
  visIgraphLayout(layout = "layout_in_circle") %>%
  visNodes(
    label = NULL,
    color = ifelse(nodes$type == "gimn",
      "slategrey",
      ifelse(nodes$type == "szakgimn",
        "pink",
        ifelse(nodes$type == "alt_isk",
          "black", "tomato"
        )
      )
    )
  ) %>%
  visEdges(arrows = "middle")

另一种方法是在使用管道之前,将
颜色
添加到
节点
,例如

nodes$color <- ifelse(nodes$type == "gimn",
          "slategrey",
          ifelse(nodes$type == "szakgimn",
            "pink",
            ifelse(nodes$type == "alt_isk",
              "black", "tomato"
            )
          )
        )
visNetwork(nodes, edges) %>%
      visIgraphLayout(layout = "layout_in_circle") %>%
      visEdges(arrows = "middle")
节点$color%
visIgraphLayout(layout=“layout\u in\u circle”)%>%
虎钳(箭头=“中间”)

我想您可以尝试使用嵌套的
ifelse
来定义基于以下类型的颜色

visNetwork(nodes, edges) %>%
  visIgraphLayout(layout = "layout_in_circle") %>%
  visNodes(
    label = NULL,
    color = ifelse(nodes$type == "gimn",
      "slategrey",
      ifelse(nodes$type == "szakgimn",
        "pink",
        ifelse(nodes$type == "alt_isk",
          "black", "tomato"
        )
      )
    )
  ) %>%
  visEdges(arrows = "middle")

另一种方法是在使用管道之前,将
颜色
添加到
节点
,例如

nodes$color <- ifelse(nodes$type == "gimn",
          "slategrey",
          ifelse(nodes$type == "szakgimn",
            "pink",
            ifelse(nodes$type == "alt_isk",
              "black", "tomato"
            )
          )
        )
visNetwork(nodes, edges) %>%
      visIgraphLayout(layout = "layout_in_circle") %>%
      visEdges(arrows = "middle")
节点$color%
visIgraphLayout(layout=“layout\u in\u circle”)%>%
虎钳(箭头=“中间”)

Hm,出于同样的原因,即使使用ifelse,节点的颜色仍然是默认颜色。可能管道的顺序有问题。无论如何,谢谢@cvr我想您可以尝试使用嵌套的
ifelse
节点中添加
color
列,然后无需在pipesHm中使用
visNodes
,出于同样的原因,即使使用ifelse,节点的颜色仍然是默认颜色。可能管道的顺序有问题。无论如何,谢谢@cvr我想您可以尝试使用嵌套的
ifelse
nodes
中添加
color
列,然后无需在管道中使用
visNodes