Python Matplotlib 네트워크 x 기반 네트워크 그림
어제 서 야 접촉 을 시 작 했 습 니 다.오후 내 내 소란 을 피 웠 습 니 다.그 다음 에 계속 업 데 이 트 를 할 것 입 니 다.잘못된 점 이 있 으 면 여러분 의 지적 을 바 랍 니 다.감사합니다!
데이터 기술
두 파일,한 파일 은 네트워크 그림 의 노드 를 포함 하고 노드 는 분류(0,1,2,3)네 가지 가 존재 하지만 0 분 류 는 버 리 고 그리 지 않 습 니 다.다른 파일 은 네트워크 그림 의 변 을 포함 하고 데이터 의 기본 특징 은 다음 과 같다.
그림 1 에서 id 는 노드 를 나타 내 고 b 는 유형 이다.그림 2 에서 두 숫자 는 연결 의 두 점 을 나타 낸다.
Networkx
설치 하 다.
제 시스템 은 Mac OS 입 니 다.terminal 에 sudo pip install network x 를 직접 입력 하면 설치 할 수 있 습 니 다.코드 에 몇 가지 함수 가 포함 되 어 있 기 때문에 python 3 에서 오 류 를 보고 할 수 있 습 니 다.저 는 python 2.7.13 으로 이 루어 졌 습 니 다.
기본 사용 방법
import networkx as nx # networkx
import matplotlib.pyplot as plt # matplotlib( , )
G =nx.random_graphs.barabasi_albert_graph(100,1) # BA G
nx.draw(G) # G
plt.savefig("ba.png") # 1: png
plt.show() # 2:
매개 변수 소개 기본- `node_size`:지정 한 노드 의 크기(기본 값 은 300 이 고 단 위 는 알 수 없 으 며 위의 그림 에서 그렇게 큰 점 입 니 다)
- `node_color`:지정 한 노드 의 색상(기본 값 은 빨간색 입 니 다.문자열 로 색상 을 간단하게 표시 할 수 있 습 니 다.예 를 들 어'r'는 빨간색,'b'는 녹색 등 입 니 다.구체 적 으로 매 뉴 얼 을 볼 수 있 습 니 다)
- `node_shape`:노드 의 모양(기본 값 은 원형 이 고 문자열'o'로 표시 되 며 구체 적 으로 매 뉴 얼 을 볼 수 있 습 니 다)
-'alpha':투명도(기본 값 1.0,불투명,0 은 완전 투명)
-'width':변 의 너비(기본 값 1.0)
- `edge_color`:가장자리 색상(기본 값 은 검은색)
-'style':변 의 스타일(기본적으로 구현,선택 가능:solid|dashed|dotted,dashdot)
- `with_labels`:노드 에 탭 이 있 는 지 여부(기본 값 은 True)
- `font_size`:노드 탭 글꼴 크기(기본 값 12)
- `font_color`:노드 탭 글꼴 색상(기본 값 은 검은색)
배치
# coding:utf-8
import networkx as nx
import matplotlib.pyplot as plt
import csv
with open('node-8.csv','rb') as csvfile:
reader = csv.DictReader(csvfile)
column = [row['b'] for row in reader]
id_tag0 = [row['id'] for row in reader]
#print column
id_tag = []
for item in id_tag0:
id_tag.append(int(item))
# =================Setting node parameters====================
node_0 = []
node_1 = []
node_2 = []
node_3 = []
node_color = []
node_color_y = []
node_color_r = []
node_color_g = []
node_color_b = []
node_shape = []
node_shape_0 = []
node_shape_1 = []
node_shape_2 = []
node_shape_3 = []
for i in range(len(column)):
if int(column[i]) == 0:
pass
elif int(column[i]) == 1:
color = 'r'
shape = 'o'
node_1.append(i)
node_color_r.append(color)
node_shape_1.append(shape)
elif int(column[i]) == 2:
color = 'g'
shape = 'o'
node_2.append(i)
node_color_g.append(color)
node_shape_2.append(shape)
else:
color = 'b'
shape = '*'
node_3.append(i)
node_color_b.append(color)
node_shape_3.append(shape)
node_color.append(color)
node_shape.append(shape)
# ==============================================================
with open('node-8.csv','rb') as csvfile:
reader = csv.DictReader(csvfile)
column1 = [row['b'] for row in reader]
id_tag1 = [row['id'] for row in reader]
#print column
id_tag11 = []
for item in id_tag1:
id_tag11.append(int(item))
edge = []
with open('edge-8.txt','r') as f:
data = f.readlines()
for line in data:
#print line
line = tuple(line.replace('\r','').replace('
','').replace('\t','').split(','))
edge.append(line)
#print edge
# ===============Setting edge parameters=========================
edge_color = []
edge_style = []
for item in edge:
#print item
if int(column1[int(item[0])]) == 0 or int(column1[int(item[1])]) == 0:
pass
elif int(column1[int(item[0])]) == 1 or int(column1[int(item[1])]) == 1:
color = 'r'
#style0 = 'dashdot'
#color_r_list.append(color)
elif int(column1[int(item[0])]) == 2 or int(column1[int(item[1])]) == 2:
color = 'g'
#style0 = 'dashed'
#color_r_list.append(color)
else:
color = 'b'
#style0 = 'dotted'
#color_b_list.append(color)
edge_color.append(color)
#edge_style.append(style0)
G = nx.Graph()
#G.add_nodes_from(id_tag)
G.add_edges_from(edge)
#nx.draw(G,pos=nx.random_layout(G), nodelist = node_0, node_color = node_color_y, node_size=120, node_shape=node_shape_0)
#nx.draw(G,pos=nx.random_layout(G), nodelist = node_1, node_color = node_color_r, node_size=120, node_shape=node_shape_1)
#nx.draw(G,pos=nx.random_layout(G), nodelist = node_2, node_color = node_color_g, node_size=120, node_shape=node_shape_2)
#nx.draw(G,pos=nx.random_layout(G), nodelist = node_3, node_color = node_color_b, node_size=120, node_shape=node_shape_3)
nx.draw_networkx(G,pos=nx.random_layout(G),node_color=node_color,node_size=10,node_shape='o',edge_color=edge_color,width=0.3,style='solid',font_size=8)
#nx.draw_networkx(G,pos=nx.random_layout(G),nodelist = node_1,node_color=node_color,node_size=100,node_shape='o',style='dashdot')
#nx.draw_networkx(G,pos=nx.random_layout(G),node_color=color_g_list,node_size=150,node_shape='^',style='dashed')
#nx.draw_networkx(G,pos=nx.random_layout(G),node_color=color_b_list,node_size=150,node_shape='*',style='dotted')
#plt.legend()
#nx.draw_networkx(G)
plt.show()
그림 을 그리다이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Python의 None과 NULL의 차이점 상세 정보그래서 대상 = 속성 + 방법 (사실 방법도 하나의 속성, 데이터 속성과 구별되는 호출 가능한 속성 같은 속성과 방법을 가진 대상을 클래스, 즉 Classl로 분류할 수 있다.클래스는 하나의 청사진과 같아서 하나의 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.