首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ggraph中有选择的颜色/大小节点

ggraph中有选择的颜色/大小节点
EN

Stack Overflow用户
提问于 2019-05-06 03:02:27
回答 1查看 904关注 0票数 3

我正在使用tidygraph和ggraph来绘制网络。有没有一种方法可以选择性地操作节点?具体地说,分别是大小和颜色。

代码语言:javascript
复制
# example data
    rstat_nodes <- data.frame(name = c("Hadley", "David", "Romain", "Julia"))
    rstat_edges <- data.frame(from = c(1, 1, 1, 2, 3, 3, 4, 4, 4), 
                              to = c(2, 3, 4, 1, 1, 2, 1, 2, 3))
    gr <- tbl_graph(nodes = rstat_nodes, edges = rstat_edges)

    as_tbl_graph(gr) %>% 
      mutate(centrality = centrality_degree(normalized = T)) %>% 
      ggraph(layout = 'auto') + 
      #geom_edge_link() +
      geom_edge_arc(curvature=0.2,alpha=0.5) + 
      geom_node_point(aes(size = 0.2, colour = centrality)) + 
      scale_color_viridis(guide = 'legend') + 
      ggtitle("Network Degree Centrality (Normalized)") +
      theme_graph()
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-05-12 06:01:55

可以,您可以使用tidygraph包中的activate来访问nodesedges数据帧。然后,您可以使用dplyr操作每个文件中的数据。您也可以通过管道直接连接到ggraph

代码语言:javascript
复制
library(tidyverse)
library(igraph)
library(ggraph)
library(tidygraph)
library(graphlayouts)
library(scales)


# example data
rstat_nodes <-
  data.frame(name = c("Hadley", "David", "Romain", "Julia"))
rstat_edges <- data.frame(from = c(1, 1, 1, 2, 3, 3, 4, 4, 4),
                          to = c(2, 3, 4, 1, 1, 2, 1, 2, 3))

gr <- tbl_graph(nodes = rstat_nodes, edges = rstat_edges)

gr %>% 
  activate(nodes) %>% # use dplyr on nodes
  mutate(David = 
           case_when(name == 'David' ~ 2, T ~ 0), 
         David = as.character(David)) %>% 
  activate(edges) %>% # same on edge list
  mutate(David = case_when(from == 2 ~ 1, T ~ 0), 
         David = as.character(David)) %>% 
  ggraph(., layout = 'auto')+
  geom_edge_link(aes(color = David), 
                 width = 1)+
  geom_node_point(aes(color = David), 
                  size = 5)+
  geom_node_text(aes(label = name), 
                 nudge_x = .05, 
                 nudge_y = .05)

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55995393

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档