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

本文介绍了一种在Python中使用NetworkX和Matplotlib库绘制网络图,并成功解决中文标签显示问题的方法。通过调整matplotlib的字体设置,使得网络图中的节点标签能够正确显示中文。文章详细展示了如何读取网络数据,构建图结构,以及最终的绘图过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

网络节点标签中文显示:

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()

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值