파이썬
-
파이썬 NetworkX 노드 색깔(color)컴퓨터/파이썬 2017. 7. 2. 14:27
networkx import networkx as nx import matplotlib.pyplot as plt G = nx.Graph() G.add_edge(1, 2, weight=5) G.add_edge(1, 3, weight=6) G.add_edge(1, 4, weight=2) G.add_edge(2, 4, weight=1) G.add_edge(1, 4, weight=0.5) # positions for all nodes using, Fruchterman-Reingold force-directed algorithm # spring_layout 이나 kamada_kawai_layout이 젤 낫다. pos=nx.spring_layout(G) nx.draw(G, pos=pos, with_labels=Tr..
-
파이썬 최단경로 구하기 (NetworkX 라이브러리)컴퓨터/파이썬 2017. 6. 29. 12:22
※ NetworkX 라이브러리 설치 필요 https://networkx.github.io/ 위 그래프에서 1부터 6까지 가는 최단 경로와 길이를 구한다고 가정 최단 경로는 1 -> 4 -> 3 -> 6, 길이는 16이 나와야 함. (1,3,6=18, 1,2,5,6=19, 1,4,3,5,6=20, 1,2,5,3,6=31... 이기 때문) import networkx as nx import matplotlib.pyplot as plt # Directed Graph G = nx.DiGraph() # G 그래프 만들기 (node 간의 edge가 존재하면 add_node 하고 add_edge 안해도 됨 # G.add_edge(node_i, node_k, distance=X) # 연결 안 된 노드가 있을 경우를 방..
-
파이썬 matplotlib 그래프 그리기컴퓨터/파이썬 2017. 6. 28. 15:10
1. 선 그래프 import matplotlib.pyplot as plt x = range(1, 6) y1 = [0.01, 0.019, 0.042, 0.038, 0.062] # 함수로 해도 됨 y2 = [0.02, 0.021, 0.03, 0.036, 0.044] plt.plot(x, y1, label="Label 1") # y1 데이터 라벨 plt.plot(x, y2, label="Label 2") # y2 데이터 라벨 plt.xlabel("X Label") # X 축 라벨 plt.ylabel("Y Label") # Y 축 라벨 plt.title('Title') plt.legend() # Places a legend(범례) on the axes. plt.show() 2. 막대 그래프 import matp..
-
파이썬 networkx weight 추가 & 그리기컴퓨터/파이썬 2017. 6. 28. 14:23
※ matplotlib 설치 필요 import networkx as nx import matplotlib.pyplot as plt G = nx.Graph() # 원하는 파라미터 이름 = 실수 (**kwds) G.add_edge(1, 2, weight=5) G.add_edge(2, 3, weight=3) G.add_edge(3, 4, weight=2) G.add_edge(2, 4, weight=1) G.add_edge(1, 4, weight=0.5) # 아래는 그래프로 그리는 법 pos=nx.spring_layout(G) nx.draw(G, pos=pos, with_labels=True) # edge 라벨은 weight 값을 가져온다. labels = nx.get_edge_attributes(G,'weig..
-
파이썬 그래프 그리기 (NetworkX 라이브러리)컴퓨터/파이썬 2017. 6. 28. 14:14
※ matplotlib 설치 필요python -m pip install -U matplotlibpip install networkx Directed Graph 일 경우, 두 노드에서 굵은 노드 있는 쪽이 방향 가르키는 쪽ex) 아래 그래프, 노드1과 노드2는 양방향성 // 노드2와 노드3은 노드2 -> 노드3만 존재 import networkx as nx import matplotlib.pyplot as plt G = nx.DiGraph() # 노드 = 원, 엣지 = 선 (add_node를 안하고 add_edge(1,2)을 해도 노드 1, 2는 자동 생성됨 G.add_nodes_from([1, 2, 3, 4]) G.add_edges_from([(1, 2), (2, 1), (2, 3), (2,4)]) # ..