【问题标题】:Color legend not appearing in ggnet2 plot颜色图例未出现在 ggnet2 图中
【发布时间】:2016-10-30 04:31:00
【问题描述】:

我正在尝试绘制网络g

> g
 Network attributes:
  vertices = 866 
  directed = TRUE 
  hyper = FALSE 
  loops = FALSE 
  multiple = FALSE 
  bipartite = FALSE 
  total edges= 5310 
    missing edges= 0 
    non-missing edges= 5310 

 Vertex attribute names: 
    color degree membership vertex.names 

 Edge attribute names not shown 

gnode“会员”的出现频率如下:

> table(g %v% "membership")

  1   2   3   4   5 
 19  44  11 196 596 

当我使用出色的 ggnet2 包和以下函数时,会返回没有图例的图,尽管 documentation suggests a plot for node size, color, etc. is automatically generated(请参阅节点图例部分):

ggnet2(g_new, color = "membership", size = "degree") +
    guides(size = F)

【问题讨论】:

    标签: r ggplot2


    【解决方案1】:

    我的猜测是您将数字顶点属性传递给ggnet2,然后它将其理解为颜色值的向量。

    简答:

    将您的membership 属性转换为character 字符串,就可以了。

    长答案:

    比较以下示例中的两个图表以了解差异:

    library(GGally)
    library(ggplot2)
    library(network)
    library(sna)
    
    g <- network(rgraph(10))
    g %v% "membership" <- sample(1:5, 10, replace = TRUE)
    g %v% "membership_string" <- as.character(g %v% "membership")
    g %v% "degree" <- degree(g)
    
    g
    table(g %v% "membership")
    
    ## Your graph
    ggnet2(g, color = "membership", size = "degree") +
      guides(size = FALSE)
    
    ## Your graph, with the membership variable as a string
    ggnet2(g, color = "membership_string", size = "degree") +
      guides(size = FALSE)
    

    如果您想在绘图中使用可区分的颜色而不是灰度级别,您可能需要这样的东西:

    ggnet2(g, color = "membership_string", size = "degree", color.palette = "Set1") +
      guides(size = FALSE)
    

    另外,我可以建议您尝试一下ggnetwork 包,它有额外的功能吗?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-03-17
      • 2014-10-12
      • 2020-06-22
      • 2015-10-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多