홈>
예 :
require(igraph)
require(tidygraph)
require(ggraph)
require(data.table)
nodes <- data.table(id = 1:6,
label = c("a1", "b1", "a2", "a3", "b2", "a4"),
type = c("A", "B", "A", "A", "B", "A"))
edges <- data.table(from = c(1, 2, 2, 3, 5),
to = c(2, 3, 4, 5, 6))
network <- graph_from_data_frame(d = edges, vertices = nodes, directed = TRUE)
ggraph(network) +
geom_edge_link(arrow = arrow(length = unit(4, 'mm')),
start_cap = circle(3, 'mm'),
end_cap = circle(3, 'mm')) +
geom_node_point(aes(color = type), size = 7) +
geom_node_text(aes(label = label)) +
theme_graph()
이것은 우리가 얻는 것입니다 :
그런 다음 투영을 만듭니다 :
V(network)$type <- bipartite_mapping(network)$type
network_projections <- bipartite_projection(network)
ggraph(network_projections$proj1) +
geom_edge_link(arrow = arrow(length = unit(4, 'mm')),
start_cap = circle(3, 'mm'),
end_cap = circle(3, 'mm')) +
geom_node_point(size = 7, color = 2, alpha = .6) +
geom_node_text(aes(label = label)) +
theme_graph()
이것은 우리가 얻는 것입니다 :
투영은 링크 a2->a3을 보여줍니다. 이는 방향성이 고려되지 않았 음을 의미합니다.
내가 발견 한만큼igraph
에 의해 계산 된 기본 입사 행렬
라이브러리는 방향성을 고려하지 않은 방식으로 계산됩니다. 이중 부재 네트워크의 방향 투영을 허용하는 기능이 없거나 다른 R 라이브러리가 있습니까?
-
답변 # 1
관련 자료
관련 질문
- r - tidygraph - 최단 경로를 따라 노드 시퀀스 획득
- R의 igraph oblect에서 2 개의 txt 파일 변환
- r - 인자 ggplot2 및 색상에 대한 여러 추세선
- graph - R에서 호출 할 객체에 숲 플롯을 저장하는 방법은 무엇입니까?
- r - igraph ggplot rStudio 노드 사이의 선을 더 길게 만들고 화살표를 추가하려면 어떻게해야합니까? 또한 범례를 어떻게 작게 만들 수 있습니까?
- r - igraph를 사용하는 네트워크 오류 메시지 Rstudio
- r - 조건부로 정점 모양 변경
- 3 열 데이터 프레임이있는 R의 그래프 시각화
- r - 방향성 그래프 대 방향성없는 그래프 (인수 무시 됨, 잠재적 경고 메시지)
- r - 그래프에서 포인트 크기 변경
이것은 해결 방법과 같은 최적의 솔루션이 아닙니다.
(원래 질문의 코드에서 계속)
우리는 이것을 얻는다 :
중첩 된 루프 인 경우에도 끔찍하게 보이지 않습니다. 모든 루프에 대해 인접한 모든 "A"유형 정점이 알려져 있기 때문에 방향 연결을 효과적으로 확인합니다. 하지만 이것이 기본 제공 기능이어야한다고 생각합니다.
또한 제안 된 접근 방식으로 인해 '실제'네트워크에 발생할 수있는 오류에 대해 잘 모릅니다. 따라서 결코 단단한 것은 아닙니다.