如何分别设置从节点到节点的 igrah 网络的标签和大小

how to set label and size of igrah network from&to nodes separately

我是 R 包的新手 {igraph},我想创建一个 user_id-state 网络,因为用户比状态多得多,我想删除 [=17] 的标签=] 但保留状态。同时,有一个单独的大小user_idstate。这是数据的样子。

>UserStateR
                 user_id state  meanlat    meanlon countUS countS
                   <chr> <chr>    <dbl>      <dbl>   <int>  <int>
1 ---teJGnwK07UO6_oJfbRw    NV 36.11559 -115.18042       1      1
2 --_ptq_Mp8p9oeCWFT8NJQ    NV 36.11559 -115.18042       1      1
3 --0HEXd4W6bJI8k7E0RxTA    AZ 33.47984 -111.97986       2      1
4 --0KsjlAThNWua2Pr4HStQ    QC 45.50970  -73.58966       6      1
5 --0mI_q_0D1CdU4P_hoImQ    NV 36.11559 -115.18042       1      1
6 --106arHH4D3fLenTl3YZA    NV 36.11559 -115.18042       1      1

你可以试试这个:

UserStateR <- read.table(text='
                      user_id             state  meanlat    meanlon countUS countS
                 1 ---teJGnwK07UO6_oJfbRw    NV 36.11559 -115.18042       1      1
                 2 --_ptq_Mp8p9oeCWFT8NJQ    NV 36.11559 -115.18042       1      1
                 3 --0HEXd4W6bJI8k7E0RxTA    AZ 33.47984 -111.97986       2      1
                 4 --0KsjlAThNWua2Pr4HStQ    QC 45.50970  -73.58966       6      1
                 5 --0mI_q_0D1CdU4P_hoImQ    NV 36.11559 -115.18042       1      1
                 6 --106arHH4D3fLenTl3YZA    NV 36.11559 -115.18042       1      1', header=TRUE)
library(igraph)
g <- graph_from_data_frame(UserStateR[,1:2])
V(g)$type <- ifelse(names(V(g)) %in% UserStateR$user_id, 'user', 'state')
V(g)$label <- ifelse(V(g)$type == 'user', '', names(V(g)))
V(g)$size <- ifelse(V(g)$type == 'user', 10, 20)
V(g)$color <- ifelse(V(g)$type == 'user', 'red', 'cyan')
plot(g)