Echo32398 2023-03-27 10:32 采纳率: 80%
浏览 37
已结题

遇到这种问题应该如何解决,代码来自xiao黄,但是复制后放到我的编译器中,同时我的import numpy as np,已经安装numpy,但还是灰色状态显示

img


想问一下,遇到这种问题应该如何解决
代码来自xiao黄,但是复制后放到我的编译器中,却运行不了,同时我的import numpy as np,已经安装numpy,但还是灰色状态显示


import random

import matplotlib.pyplot as plt
import networkx as nx
import numpy as np

max_iter_num = 5 # 模拟的次数
G = nx.karate_club_graph() # 空手道俱乐部

for edge in G.edges:
    G.add_edge(edge[0], edge[1], weight=random.uniform(0,1)) # 可不可以作为权值 病毒的感染能力
for node in G:
    G.add_node(node, state = 0) # 用state标识状态 state=0 未激活,state=1 激活

seed = 33 # 选定33作为传染源
G.node[seed]['state'] = 1 # 表示33是感染的

all_infect_nodes = [] # 所有被感染的节点放在这里
all_infect_nodes.append(seed)

infected_graph = nx.Graph() # 被激活的图
infected_graph.add_node(seed)

for i in range(max_iter_num):
    new_infect = list() # 新被感染的
    t1 = '%s time' % i + ' %s nodes' % len(all_infect_nodes)
    print(t1) # 当前有多少个节点被感染
    
    # 画图
    plt.title(t1)
    nx.draw(infected_graph, with_labels=True)
    plt.show()

    # 感染的机会不止一次
    for v in all_infect_nodes:
        for nbr in G.neighbors(v):
            if G.node[nbr]['state'] == 0: # 如果这个邻居节点没被感染
                edge_data = G.get_edge_data(v, nbr)
                if random.uniform(0, 1) < edge_data['weight']:
                    G.node[nbr]['state'] = 1
                    new_infect.append(nbr)
                    infected_graph.add_edge(v, nbr) # 画图 添加边
    
    all_infect_nodes.extend(new_infect) # 将新感染的添加到
    print('all_active_nodes:', all_infect_nodes)

同时还想请教如何出现节点图,谢谢Thanks♪(・ω・)ノ

  • 写回答

3条回答 默认 最新

  • Bony- 2023-03-27 14:06
    关注

    这个代码的问题可能是缺少必要的依赖库,建议先检查是否安装了必要的库,如networkx、matplotlib和numpy等。如果没有安装,请在终端中使用pip install命令安装。

    另外,在运行代码时需要注意,代码中存在一些中文字符,可能会导致编码问题。如果出现编码问题,可以将代码中的中文字符转换为英文字符,或者在文件开头添加# coding=utf-8,以指定编码格式。

    关于如何出现节点图,你可以在代码中添加以下代码来显示节点图:

    pos = nx.spring_layout(infected_graph)
    nx.draw_networkx_nodes(infected_graph, pos, node_color='r', node_size=100)
    nx.draw_networkx_edges(infected_graph, pos)
    nx.draw_networkx_labels(infected_graph, pos, font_size=10, font_family='Arial')
    plt.axis('off')
    plt.show()
    

    这段代码使用了networkx库中的spring_layout函数来生成节点的布局,然后使用draw_networkx_nodes、draw_networkx_edges和draw_networkx_labels函数来绘制节点、边和标签,最后使用plt.show()函数显示节点图。请注意,这段代码应该在for循环中的plt.show()函数之后添加。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 4月4日
  • 已采纳回答 3月27日
  • 创建了问题 3月27日

悬赏问题

  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么
  • ¥15 banner广告展示设置多少时间不怎么会消耗用户价值
  • ¥16 mybatis的代理对象无法通过@Autowired装填
  • ¥15 可见光定位matlab仿真
  • ¥15 arduino 四自由度机械臂
  • ¥15 wordpress 产品图片 GIF 没法显示
  • ¥15 求三国群英传pl国战时间的修改方法
  • ¥15 matlab代码代写,需写出详细代码,代价私
  • ¥15 ROS系统搭建请教(跨境电商用途)
  • ¥15 AIC3204的示例代码有吗,想用AIC3204测量血氧,找不到相关的代码。