繁体   English   中英

根据程度根据大小节点绘制网络

[英]Plot network with size node based on their degree

我创建一个网络,然后我想根据程度绘制网络节点大小(更多链接 - >更大的节点)。 我尝试了我在这里找到的代码。

那是我的代码:

library(igraph)

# load dataset
net <- read.graph("./dataset.gml", format = c("gml"))

# Generate colors base on media type:
colrs <- c("gray50", "tomato", "gold")
V(net)$color <- colrs[V(net)$media.type]

# Compute node degrees (#links) and use that to set node size:
deg <- degree(net, mode = "all")
V(net)$size <- deg*3
# We could also use the audience size value:
V(net)$size <- V(net)$audience.size*0.6

#change arrow size and edge color:
E(net)$arrow.size <- .2
E(net)$edge.color <- "gray80"

x11()
plot(net)

当我运行此代码时,我收到此错误:

deg < - 度(net,mode =“all”)

度数错误(net,mode =“all”):未使用的参数(mode =“all”)


我使用的数据集是悲惨世界:

> dput(net)
structure(list(77, FALSE, c(1, 2, 3, 3, 4, 5, 6, 7, 8, 9, 11, 
11, 11, 11, 12, 13, 14, 15, 17, 18, 18, 19, 19, 19, 20, 20, 20, 
20, 21, 21, 21, 21, 21, 22, 22, 22, 22, 22, 22, 23, 23, 23, 23, 
23, 23, 23, 23, 23, 24, 24, 25, 25, 25, 26, 26, 26, 26, 27, 27, 
27, 27, 27, 28, 28, 29, 29, 29, 30, 31, 31, 31, 31, 32, 33, 33, 
34, 34, 35, 35, 35, 36, 36, 36, 36, 37, 37, 37, 37, 37, 38, 38, 
38, 38, 38, 38, 39, 40, 41, 41, 42, 42, 42, 43, 43, 43, 44, 44, 
45, 47, 48, 48, 48, 48, 49, 49, 50, 50, 51, 51, 51, 52, 52, 53, 
54, 54, 54, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 56, 56, 57, 
57, 57, 58, 58, 58, 58, 58, 59, 59, 59, 59, 60, 60, 60, 61, 61, 
61, 61, 61, 61, 62, 62, 62, 62, 62, 62, 62, 62, 63, 63, 63, 63, 
63, 63, 63, 63, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 65, 65, 
65, 65, 65, 65, 65, 65, 65, 65, 66, 66, 66, 66, 66, 66, 66, 66, 
66, 67, 68, 68, 68, 68, 68, 68, 69, 69, 69, 69, 69, 69, 69, 70, 
70, 70, 70, 70, 70, 70, 70, 71, 71, 71, 71, 71, 71, 71, 71, 72, 
72, 72, 73, 74, 74, 75, 75, 75, 75, 75, 75, 75, 76, 76, 76, 76, 
76, 76, 76), c(0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 10, 3, 2, 0, 11, 
11, 11, 11, 16, 16, 17, 16, 17, 18, 16, 17, 18, 19, 16, 17, 18, 
19, 20, 16, 17, 18, 19, 20, 21, 16, 17, 18, 19, 20, 21, 22, 12, 
11, 23, 11, 24, 23, 11, 24, 11, 16, 25, 11, 23, 25, 24, 26, 11, 
27, 23, 27, 11, 23, 30, 11, 23, 27, 11, 11, 27, 11, 29, 11, 34, 
29, 34, 35, 11, 29, 34, 35, 36, 11, 29, 34, 35, 36, 37, 11, 29, 
25, 25, 24, 25, 41, 25, 24, 11, 26, 27, 28, 11, 28, 46, 47, 25, 
27, 11, 26, 11, 49, 24, 49, 26, 11, 51, 39, 51, 51, 49, 26, 51, 
49, 39, 54, 26, 11, 16, 25, 41, 48, 49, 55, 55, 41, 48, 55, 48, 
27, 57, 11, 58, 55, 48, 57, 48, 58, 59, 48, 58, 60, 59, 57, 55, 
55, 58, 59, 48, 57, 41, 61, 60, 59, 48, 62, 57, 58, 61, 60, 55, 
55, 62, 48, 63, 58, 61, 60, 59, 57, 11, 63, 64, 48, 62, 58, 61, 
60, 59, 57, 55, 64, 58, 59, 62, 65, 48, 63, 61, 60, 57, 25, 11, 
24, 27, 48, 41, 25, 68, 11, 24, 27, 48, 41, 25, 69, 68, 11, 24, 
27, 41, 58, 27, 69, 68, 70, 11, 48, 41, 25, 26, 27, 11, 48, 48, 
73, 69, 68, 25, 48, 41, 70, 71, 64, 65, 66, 63, 62, 48, 58), 
    c(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 13, 12, 11, 10, 14, 15, 16, 
    17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 
    32, 33, 34, 35, 36, 37, 38, 47, 46, 39, 40, 41, 42, 43, 44, 
    45, 49, 48, 52, 51, 50, 54, 55, 53, 56, 57, 58, 60, 59, 61, 
    62, 63, 66, 64, 65, 67, 69, 70, 71, 68, 72, 73, 74, 75, 76, 
    77, 79, 78, 82, 83, 80, 81, 87, 88, 84, 85, 86, 93, 94, 89, 
    90, 91, 92, 95, 96, 97, 98, 101, 100, 99, 102, 103, 104, 
    106, 105, 107, 108, 112, 110, 111, 109, 114, 113, 116, 115, 
    119, 118, 117, 121, 120, 122, 125, 124, 123, 131, 132, 133, 
    130, 128, 134, 135, 127, 126, 129, 136, 137, 139, 140, 138, 
    145, 143, 142, 141, 144, 148, 147, 149, 146, 150, 151, 152, 
    153, 158, 157, 154, 156, 155, 164, 162, 159, 163, 160, 161, 
    166, 165, 168, 174, 170, 171, 167, 173, 172, 169, 184, 177, 
    175, 183, 179, 182, 181, 180, 176, 178, 187, 194, 193, 189, 
    192, 191, 190, 188, 185, 186, 200, 196, 197, 203, 202, 198, 
    201, 195, 199, 204, 206, 207, 205, 208, 210, 209, 213, 214, 
    211, 215, 217, 216, 212, 221, 222, 218, 223, 224, 225, 220, 
    219, 230, 233, 226, 232, 231, 228, 227, 229, 236, 234, 235, 
    237, 238, 239, 242, 244, 243, 241, 240, 245, 246, 252, 253, 
    251, 250, 247, 248, 249), c(0, 1, 2, 4, 5, 6, 7, 8, 9, 13, 
    3, 12, 11, 10, 14, 15, 16, 17, 47, 49, 52, 54, 57, 62, 66, 
    69, 72, 73, 75, 77, 82, 87, 93, 102, 106, 112, 114, 119, 
    131, 145, 184, 206, 213, 221, 230, 236, 46, 18, 19, 21, 24, 
    28, 33, 39, 55, 132, 20, 22, 25, 29, 34, 40, 23, 26, 30, 
    35, 41, 27, 31, 36, 42, 32, 37, 43, 38, 44, 45, 48, 51, 58, 
    64, 67, 70, 50, 53, 60, 97, 101, 116, 207, 214, 222, 56, 
    59, 95, 96, 98, 100, 110, 133, 205, 211, 218, 233, 242, 61, 
    103, 113, 118, 125, 130, 234, 63, 65, 71, 74, 104, 111, 143, 
    208, 215, 223, 226, 235, 105, 107, 76, 79, 83, 88, 94, 68, 
    78, 80, 84, 89, 81, 85, 90, 86, 91, 92, 121, 128, 99, 134, 
    139, 164, 210, 217, 224, 232, 244, 108, 109, 135, 140, 142, 
    148, 150, 153, 162, 168, 177, 187, 200, 209, 216, 231, 237, 
    238, 243, 252, 115, 117, 124, 127, 136, 120, 122, 123, 126, 
    129, 137, 138, 141, 147, 158, 159, 174, 175, 194, 144, 149, 
    157, 163, 170, 183, 193, 204, 146, 151, 154, 160, 171, 179, 
    189, 196, 225, 253, 152, 156, 161, 167, 182, 192, 197, 155, 
    166, 173, 181, 191, 203, 165, 172, 180, 190, 202, 169, 176, 
    188, 198, 251, 178, 185, 201, 250, 186, 195, 247, 199, 248, 
    249, 212, 220, 228, 241, 219, 227, 240, 229, 245, 246, 239
    ), c(0, 0, 1, 2, 4, 5, 6, 7, 8, 9, 10, 10, 14, 15, 16, 17, 
    18, 18, 19, 21, 24, 28, 33, 39, 48, 50, 53, 57, 62, 64, 67, 
    68, 72, 73, 75, 77, 80, 84, 89, 95, 96, 97, 99, 102, 105, 
    107, 108, 108, 109, 113, 115, 117, 120, 122, 123, 126, 136, 
    138, 141, 146, 150, 153, 159, 167, 175, 185, 195, 204, 205, 
    211, 218, 226, 234, 237, 238, 240, 247, 254), c(0, 10, 10, 
    12, 13, 13, 13, 13, 13, 13, 13, 14, 46, 47, 47, 47, 47, 56, 
    62, 67, 71, 74, 76, 77, 83, 92, 105, 112, 124, 126, 131, 
    132, 132, 132, 132, 136, 139, 141, 142, 142, 144, 144, 153, 
    153, 153, 153, 153, 154, 155, 173, 178, 178, 182, 182, 182, 
    183, 192, 192, 200, 210, 217, 223, 228, 233, 237, 240, 242, 
    243, 243, 247, 250, 252, 253, 253, 254, 254, 254, 254), list(
        c(1, 0, 1), structure(list(), .Names = character(0)), 
        structure(list(id = c(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 
        11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 
        25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 
        39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 
        53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 
        67, 68, 69, 70, 71, 72, 73, 74, 75, 76), label = c("Myriel", 
        "Napoleon", "MlleBaptistine", "MmeMagloire", "CountessDeLo", 
        "Geborand", "Champtercier", "Cravatte", "Count", "OldMan", 
        "Labarre", "Valjean", "Marguerite", "MmeDeR", "Isabeau", 
        "Gervais", "Tholomyes", "Listolier", "Fameuil", "Blacheville", 
        "Favourite", "Dahlia", "Zephine", "Fantine", "MmeThenardier", 
        "Thenardier", "Cosette", "Javert", "Fauchelevent", "Bamatabois", 
        "Perpetue", "Simplice", "Scaufflaire", "Woman1", "Judge", 
        "Champmathieu", "Brevet", "Chenildieu", "Cochepaille", 
        "Pontmercy", "Boulatruelle", "Eponine", "Anzelma", "Woman2", 
        "MotherInnocent", "Gribier", "Jondrette", "MmeBurgon", 
        "Gavroche", "Gillenormand", "Magnon", "MlleGillenormand", 
        "MmePontmercy", "MlleVaubois", "LtGillenormand", "Marius", 
        "BaronessT", "Mabeuf", "Enjolras", "Combeferre", "Prouvaire", 
        "Feuilly", "Courfeyrac", "Bahorel", "Bossuet", "Joly", 
        "Grantaire", "MotherPlutarch", "Gueulemer", "Babet", 
        "Claquesous", "Montparnasse", "Toussaint", "Child1", 
        "Child2", "Brujon", "MmeHucheloup"), maincharacter = c(0, 
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 
        0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
        1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
        0, 0, 0, 0)), .Names = c("id", "label", "maincharacter"
        )), structure(list(value = c(1, 8, 10, 6, 1, 1, 1, 1, 
        2, 1, 1, 3, 3, 5, 1, 1, 1, 1, 4, 4, 4, 4, 4, 4, 3, 3, 
        3, 4, 3, 3, 3, 3, 5, 3, 3, 3, 3, 4, 4, 3, 3, 3, 3, 4, 
        4, 4, 2, 9, 2, 7, 13, 1, 12, 4, 31, 1, 1, 17, 5, 5, 1, 
        1, 8, 1, 1, 1, 2, 1, 2, 3, 2, 1, 1, 2, 1, 3, 2, 3, 3, 
        2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 1, 1, 
        2, 3, 2, 2, 1, 3, 1, 1, 3, 1, 2, 1, 2, 1, 1, 1, 3, 2, 
        1, 1, 9, 2, 2, 1, 1, 1, 2, 1, 1, 6, 12, 1, 1, 21, 19, 
        1, 2, 5, 4, 1, 1, 1, 1, 1, 7, 7, 6, 1, 4, 15, 5, 6, 2, 
        1, 4, 2, 2, 6, 2, 5, 1, 1, 9, 17, 13, 7, 2, 1, 6, 3, 
        5, 5, 6, 2, 4, 3, 2, 1, 5, 12, 5, 4, 10, 6, 2, 9, 1, 
        1, 5, 7, 3, 5, 5, 5, 2, 5, 1, 2, 3, 3, 1, 2, 2, 1, 1, 
        1, 1, 3, 5, 1, 1, 1, 1, 1, 6, 6, 1, 1, 2, 1, 1, 4, 4, 
        4, 1, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 1, 2, 1, 1, 2, 
        2, 3, 3, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1)), .Names = "value")), 
    <environment>), class = "igraph")

我不明白问题是什么。

搜索“学位”时,您可以找到两种学位函数。 就我而言,我可以这样看,

?degree

Help on topic 'degree' was found in the following packages:
Compute the Degree Centrality Scores of Network Positions
(in package sna in library C:/Program Files/R/R-3.3.1/library)
Degree and degree distribution of the vertices
(in package igraph in library C:/Program Files/R/R-3.3.1/library)

sna包中的degree函数没有“mode”参数,但是igraph有它。

所以你可以让你的R脚本使用“::”来识别它的来源。

> deg <- degree(net, mode="all")
Error in degree(net, mode = "all") : unused argument (mode = "all")
> deg <- igraph::degree(net, mode="all")
> 

享受R !!

问题是您在上面加载的几个库之间存在冲突。 解决方案是在被称为井的degree函数的命令中定义的是igraph

您可以按如下方式指定它: library_name :: function_name

在您的情况下,library_name值为igraph ,function_name为degree ,因此您的代码应如下所示:

deg <- igraph::degree (net, mode = "all")

它的工作原理。

此方法非常有用,但它不应该创建冲突(两个不同的包中的函数名称相同),因此请指定要与::一起使用的包。

例:

该库ade4包含一个名为函数withinbase的R环境中已经包含一个函数within 当然, withinade4具有比不同的动作withinbase

所以,如果在我的工作环境,我装这两个库( baseade4 ),我想使用的功能within ,我将有A R执行冲突。 这是由于2个函数具有相同的名称而R不知道您想要使用哪个库。 在这种情况下,您必须指定相关的库。

在这里,我们知道库,我们不想尝试分离使用detach的那个detach("package:ade4")

在编写代码时,可以知道要用于函数的库,因此无需分离包,您可以执行以下操作之一:

  • 要执行basewithin函数,那么: base::within()

  • 要执行ade4within函数,那么: ade4::within()

我希望你能回答并解释清楚。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM