You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Tweepy和NetworkX绘制Twitter用户关系图遇RuntimeError报错求助

问题:NetworkX绘图报错RuntimeError: Could not convert glyph to bitmap

我正在学习用tweepy和networkx研究Twitter用户间的关系,已经基于自己的账号及关注者创建了图结构,但调用绘图代码时出现报错:

RuntimeError: In draw_glyphs_to_bitmap: Could not convert glyph to bitmap (error code 0x62)

排查无果,网上也没找到解决方案,想请教是不是代码的问题?我的代码如下:

api = tweepy.API(auth)

my_user = api.get_user(screen_name='my_user')

my_followers = []

for friend in my_user.friends():
   my_followers.append(friend.screen_name)

G = nx.Graph()
first_node = G.add_node(my_user)

for user in my_followers:
   G.add_node(user)

nx.draw(G, with_labels=True, font_weight='bold')
plt.show() #Here is where I get the error

解决方案

你的代码里有两个关键问题会触发这个报错:

  1. 节点类型不统一
    你添加的第一个节点是tweepy.models.User对象(my_user),但后续添加的都是字符串类型的用户名。NetworkX绘图时解析对象标签会出现字符渲染异常,这就是报错的核心原因。

    修正方式:把第一个节点换成用户名字符串:

    G.add_node(my_user.screen_name)
    
  2. 图结构缺失边,可优化渲染参数
    当前图里只有孤立节点,绘图时容易出现布局或渲染异常。建议添加你和每个关注用户的边,让图结构更合理:

    for user in my_followers:
        G.add_edge(my_user.screen_name, user)
    

    另外,可指定matplotlib支持的字体,避免字符渲染问题:

    nx.draw(G, with_labels=True, font_weight='bold', font_family='Arial')
    

修正后的完整代码:

api = tweepy.API(auth)

my_user = api.get_user(screen_name='my_user')
my_username = my_user.screen_name

my_followers = []
for friend in my_user.friends():
   my_followers.append(friend.screen_name)

G = nx.Graph()
G.add_node(my_username)

for user in my_followers:
   G.add_node(user)
   G.add_edge(my_username, user)  # 添加用户间的关联边

nx.draw(G, with_labels=True, font_weight='bold', font_family='Arial')
plt.show()

内容的提问来源于stack exchange,提问作者eneko valero

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 13:27:21