networkx作中文标签的网络图时出现的一些问题

网络节点标签中文显示:

plt.rcParams['font.family'] = ['sans-serif']
plt.rcParams['font.sans-serif'] = ['SimHei']

error:'gbk' codec can't decode byte 0xbf in position 2:...

# data = open('../result/network/ys_gx.txt')
data = open('../result/network/ys_gx.txt','rb')

error: a bytes-like object is required,not 'str'

data = data.decode()

完整代码:

import pandas as pd 
import networkx as nx 
import matplotlib.pyplot as plt
from collections import Counter
import copy


plt.rcParams['font.family'] = ['sans-serif']
plt.rcParams['font.sans-serif'] = ['SimHei']
data = open('../result/network/ys_gx.txt','rb')



data = data.read()
G = nx.DiGraph()
data = data.decode()
line = data.split('\n')
for i in range(0, len(line) - 1):
    line1 = line[i].split(',')
    node1 = line1[0]
    node2 = line1[1]
    G.add_edges_from([(node1, node2)])
    # G.add_edge(node1, node2)
    # edge.append((node1, node2))
# pos = nx.circular_layout(G)
# pos = nx.spring_layout(G)
pos = nx.random_layout(G)
nx.draw(G, pos, with_labels=True, node_size=300)
plt.savefig('ysgx2.pdf', dpi=120)
plt.show()

 

你可能感兴趣的:(Python)