Study Anything ๐Ÿง

[NetworkX] ๊ทธ๋ž˜ํ”„ ์ €์žฅํ•˜๊ณ  ๋ถˆ๋Ÿฌ์˜ค๊ธฐ ๋ณธ๋ฌธ

์Šคํ„ฐ๋””/Python

[NetworkX] ๊ทธ๋ž˜ํ”„ ์ €์žฅํ•˜๊ณ  ๋ถˆ๋Ÿฌ์˜ค๊ธฐ

์†” 2022. 7. 7. 16:40

์ฐธ๊ณ  : NetworkX : GML

 

ํŒŒ์ด์ฌ ํŒŒ์ผ์„ ์‹คํ–‰ํ•  ๋•Œ๋งˆ๋‹ค ๊ทธ๋ž˜ํ”„๋ฅผ ๊ทธ๋ฆฌ์ง€ ์•Š์•„๋„ ๋˜๋Š” ๊ฒฝ์šฐ๋“ค์ด ์žˆ๋‹ค.

์ด๋Ÿฐ ๊ฒฝ์šฐ, ๊ทธ๋ž˜ํ”„๋ฅผ ํ•œ ๋ฒˆ ๊ทธ๋ ค ์ €์žฅํ•˜๊ณ  ์ €์žฅ๋œ ๊ทธ๋ž˜ํ”„๋ฅผ ๋ถˆ๋Ÿฌ์˜ค๋Š” ๊ฒƒ์ด ํšจ์œจ์ ์ด๋‹ค.

 

์ด๋ฒˆ ํฌ์ŠคํŠธ์—์„œ๋Š” ๊ทธ๋ฆฐ ๊ทธ๋ž˜ํ”„๋ฅผ ์ €์žฅํ•˜๊ณ  ๋‹ค๋ฅธ ํŒŒ์ผ์—์„œ ๋ถˆ๋Ÿฌ์˜ค๋Š” ๋ฐฉ๋ฒ•์„ ๋‹ค๋ค„๋ณด์ž.

 

๊ทธ๋ž˜ํ”„๋Š” json, gml ๋“ฑ ์—ฌ๋Ÿฌ ํฌ๋งท์œผ๋กœ ์ €์žฅํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ๋‚˜๋Š” ๋‹จ์ˆœํžˆ ๊ทธ๋ž˜ํ”„๋ฅผ ํŒŒ์ด์ฌ ํŒŒ์ผ์— ๋‹ค์‹œ ๋ถˆ๋Ÿฌ์˜ฌ ์šฉ๋„๋กœ ์ €์žฅํ•˜๋Š” ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์— GML ํฌ๋งท์œผ๋กœ ์ €์žฅํ–ˆ๋‹ค.

 

 

 

๋จผ์ € ๊ทธ๋ž˜ํ”„๋ฅผ ๊ทธ๋ฆฐ ๋ถ€๋ถ„์„ ์ƒˆ๋กœ์šด ํŒŒ์ผ์— ์˜ฎ๊ฒจ์ค€๋‹ค.

๊ธฐ์กด : main.py -> ์ƒˆ ํŒŒ์ผ : graph.py

# graph.py

import networkx as nx

def drawGraph(data):
	# ๊ทธ๋ž˜ํ”„ ๊ทธ๋ฆฌ๋Š” ๋ถ€๋ถ„ ์ƒ๋žต

...

G = nx.Graph()
drawGraph()

 

 

ํ•˜์œ„์— ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•œ ํ›„ ํŒŒ์ผ์„ ์‹คํ–‰ํ•ด ๊ทธ๋ž˜ํ”„๋ฅผ ์ €์žฅํ•œ๋‹ค.

# graph.py

...

nx.write_gml(G, "graphData.gml")	# G: ์ €์žฅํ•  ๊ทธ๋ž˜ํ”„, path: ์ €์žฅํ•  ๊ฒฝ๋กœ

์ด ๋•Œ, path ๋ถ€๋ถ„์— ์ƒ๋Œ€๊ฒฝ๋กœ๋กœ ๋‹จ์ˆœํžˆ ํŒŒ์ผ๋ช…๋งŒ ์จ๋„ ๋˜์ง€๋งŒ ์ €์žฅ์ด ์ž˜ ์•ˆ ๋œ๋‹ค๋ฉด ์ ˆ๋Œ€๊ฒฝ๋กœ๋ฅผ ์“ฐ๋Š” ๊ฒƒ์„ ์ถ”์ฒœํ•œ๋‹ค.

( filepath ๋ณ€์ˆ˜์— ํ˜„์žฌ ์ž‘์—… ๋””๋ ‰ํ† ๋ฆฌ ๊ฒฝ๋กœ๋ฅผ ์ €์žฅํ•ด๋‘๊ณ  filepath+'ํŒŒ์ผ๋ช…' ํ˜•ํƒœ๋กœ ์ž…๋ ฅํ•˜๋Š” ๋ฐฉ๋ฒ•๋„ ์žˆ๋‹ค.)

 

 

 

๊ธฐ์กด ํŒŒ์ผ์—์„œ ๊ทธ๋ž˜ํ”„๋ฅผ ๋ถˆ๋Ÿฌ์˜ค๊ธฐ ์œ„ํ•ด ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•œ๋‹ค.

# main.py

...

# ๊ธฐ์กด์— ๊ทธ๋ž˜ํ”„๋ฅผ ๊ทธ๋ฆฌ๋˜ ๋ถ€๋ถ„ ์‚ญ์ œ
G = read_gml("graphData.gml")	# path: ๊ทธ๋ž˜ํ”„๊ฐ€ ์ €์žฅ๋œ ๊ฒฝ๋กœ

์ €์žฅํ•  ๋•Œ์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ path ๋ถ€๋ถ„์€ ์ƒ๋Œ€๊ฒฝ๋กœ, ์ ˆ๋Œ€๊ฒฝ๋กœ ์ค‘ ํŽธํ•œ ๊ฒƒ์„ ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค.

(์‚ฌ์šฉํ•ด ๋ณธ ๊ฒฐ๊ณผ ์ €์žฅํ•  ๋• ์ƒ๋Œ€๊ฒฝ๋กœ๊ฐ€ ์ž˜ ์ธ์‹๋˜์ง€ ์•Š์•˜์ง€๋งŒ ๋ถˆ๋Ÿฌ์˜ฌ ๋• ์ƒ๋Œ€๊ฒฝ๋กœ๊ฐ€ ์ž˜ ์ธ์‹๋˜์—ˆ๋‹ค.)

 

 

์œ„์™€ ๊ฐ™์ด ๋ถˆ๋Ÿฌ์˜จ ๋’ค์—๋Š” ์ถ”๊ฐ€ ์ž‘์—… ์—†์ด ๊ทธ๋Œ€๋กœ ๊ทธ๋ž˜ํ”„๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์–ด์„œ ๋งค์šฐ ํŽธ๋ฆฌํ–ˆ๋‹ค.

(G.nodes(), G.edges() ๋“ฑ ๊ทธ๋Œ€๋กœ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•จ)

 

 

 

์‹คํ–‰ ํŒŒ์ผ์„ ์‹คํ–‰ํ•  ๋•Œ๋งˆ๋‹ค ๊ทธ๋ž˜ํ”„๋ฅผ ์ƒˆ๋กœ ๊ทธ๋ ค์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ๋Š” ์–ด์ฉ” ์ˆ˜ ์—†์ง€๋งŒ,

๋งŽ์€ ๊ฒฝ์šฐ ๊ธฐ๋ณธ ๊ทธ๋ž˜ํ”„๋ฅผ ํ† ๋Œ€๋กœ ๊ฐ€๊ณต์„ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ด๋ฒˆ ํฌ์ŠคํŠธ์—์„œ๋Š” ๊ทธ๋ž˜ํ”„๋ฅผ ์ €์žฅํ•˜๊ณ  ๋ถˆ๋Ÿฌ์˜ค๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ๋‹ค๋ค„๋ณด์•˜๋‹ค.

 

 

728x90
Comments