gpt4 book ai didi

r - 正确着色 R igraph 中的顶点

转载 作者:行者123 更新时间:2023-12-03 23:20:57 26 4
gpt4 key购买 nike

我正在使用 igraph 为顶点着色

我有两个 CSV 文件答案和图表拓扑。

答案:(这说明玩家 K 和 N 回答正确)

  Player Q1_I1
1 k 1
2 l 0
3 n 1
4 m 0

拓扑:(表示谁连接到谁)
  Node.1 Node.2
1 k l
2 l k
3 l m
4 m l
5 l n
6 n l
7 n k
8 k n

我想使用包 IGraph 构建一个图形,并根据它们的正确性为不同颜色的顶点着色。

这就是我能够实现的目标:
# reads answers and creates a graph from topology
answers <- read.csv("answers2.csv",header=T)
data<-read.csv('edges2.csv')
data<-graph.data.frame(data1, directed=FALSE)
g<-simplify(data)

# goes through vertices and colors them in different color, depending on correctness.
# 2 means second column (First one is the players name)
V(g)$color <- ifelse(answers[V(g), 2] == 1, "blue", "red")
plot(g, layout=layout.fruchterman.reingold, vertex.color=V(g)$color)

问题是在我的输出中颜色是错误的: enter image description here

这里 M 和 K 被标记为正确,而它应该是 N 和 K。
我认为问题是因为我没有指定 Node 应该与 Player 相关,我试图实现这一点,但没有成功。

有什么想法如何实现这一目标吗?

最佳答案

最简单的方法是创建包含所有元数据的图形,然后 igraph 负责其余的工作。例如。

library(igraph)

answers <- read.table(textConnection(
" Player Q1_I1
1 k 1
2 l 0
3 n 1
4 m 0
"))

topology <- read.table(textConnection(
" Node.1 Node.2
1 k l
2 l k
3 l m
4 m l
5 l n
6 n l
7 n k
8 k n
"))

g2 <- graph.data.frame(topology, vertices=answers, directed=FALSE)
g <- simplify(g2)
V(g)$color <- ifelse(V(g)$Q1_I1 == 1, "lightblue", "orange")

plot(g)

plot

但是,实际上如果您在数据表中不包含两个方向的每条边,那么您甚至不需要调用simple。

关于r - 正确着色 R igraph 中的顶点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15999877/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com