1

我有一个这样制作的网络:

structure(list(myfirstcol = c(1L, 2L, 3L, 1L, 2L, 3L, 2L, 3L, 
1L), mysecondcol = c(1L, 2L, 3L, 2L, 3L, 2L, 1L, 1L, 3L), value = c(394L, 
445L, 83L, 2L, 12L, 19L, 33L, 84L, 12L)), class = "data.frame", row.names = c(NA, 
-9L))

我使用此代码将其转换为网络对象

library(GGally)
netval1 <-
  network(netmat1_matrix, matrix.type = "edgelist",
          ignore.eval = F, names.eval = "value")

我相信我的代码应该从我的边缘列表创建一个网络并创建一个名为 value 的 tie 属性

我想可视化这个矩阵,并在数字大时将节点颜色设置为深蓝色,在数字小时将节点颜色设置为浅蓝色

我试过这段代码

ggnet(netval1, color = "value")

我只得到三个节点和三个领带,一切都是黑色的。即使我用“蓝色”或“绿色”替换颜色,它也不会影响图表。

4

1 回答 1

1

创建network对象时,您声明了names.eval = "value",它将“值”设置为边缘属性名称。您在问我们如何更改节点的颜色。为此,您必须创建一个具有节点属性的新顶点。

这是一个例子。假设有些节点是深蓝色的,有些是蓝色的:

netval1 %v% "nodecolor" = rep(c("darkblue", "blue"))

ggnet2(netval1, color = "nodecolor")

这导致了下面的网络图: 在此处输入图像描述

现在回答您的第二条评论:

我想可视化这个矩阵,并在数字大时将节点颜色设置为深蓝色,在数字小时将节点颜色设置为浅蓝色

您的矩阵中没有节点属性。节点边缘属性之间存在差异。你的矩阵是一个边缘列表,所以那里只有关于边缘(即关系)的信息。没有我们可以用来为节点着色的信息,所以很遗憾,不可能完全按照您的意愿进行操作。

在更改节点颜色之前,您必须创建节点属性。此信息可以来自单独的向量,也可以network像我上面所做的那样作为属性添加到您的对象中。您可以在此处找到如何执行此操作的示例。

于 2020-09-19T21:59:03.133 回答