如何制作twitter的网络图(Python3)

How to make network graph of twitter (Python3)

我是一名编程初学者,试图分析我的 Twitter 帐户的网络。 我正在写这段代码:

api = twitter.Api(consumer_key = my_consumer_key,
          consumer_secret = my_consumer_secret, 
          access_token_key = my_access_token_key, 
          access_token_secret = my_access_token_secret, 
          input_encoding = "UTF-8",
          sleep_on_rate_limit=True)


friends = api.GetFriends()

G = networkx.Graph()

for friend in friends:
   G.add_edge(myname,friend.screen_name)


for friend in friends[-3:]:
    for user in api.GetFriends(friend.id):
        if user in friends:
            G.add_edge(friend.screen_name,user.screen_name)


pos = spring_layout(G)


draw_networkx_nodes(G, pos, node_size = 100, node_color = 'w')
draw_networkx_edges(G, pos, width = 1)
draw_networkx_labels(G, pos, font_size = 12, font_family = 'sans-
serif', font_color = 'r')

xticks([])
yticks([])
savefig("egonetwork.png") 
show()

我可以得到结果,但是由于节点数量巨大,结果非常复杂。因此,我想减少节点(关注者)的数量,例如,仅 5 或 6 个节点。我应该编辑哪一部分? 如能详细说明,将不胜感激

如果我没看错你的问题,你最多选择5/6个关注者及其相互关系。

如果是这种情况,我建议您更改 for 循环,以便最多向图中添加五个节点。此外,您需要确保只添加您添加到图表中的五个关注者的关注者。

for i in range(min(5, len(friends))): 
   G.add_edge(myname,friends[i].screen_name)
   for user in api.GetFriends(friends[i].id):
        if user in friends[:min(5, len(friends))]:
            G.add_edge(friend.screen_name,user.screen_name)

在第一个 for 循环中,您最多可以将五个关注者添加到图表中。 然后,第二个循环将遍历您刚刚添加的节点的所有关注者,并将其互连添加到您的其他四个关注者。