def draw_graph_4_1(density, side_width, side_height, sim_time, g_r, v_x, v_y, r_x, r_y, r_t, pic=False, picName='_'): lines = [] # 得到随机节点的坐标 rd_nodes_pos = get_random_position(density, side_width, side_height) pos = { i: (rd_nodes_pos[i][0], rd_nodes_pos[i][1]) for i in range(len(rd_nodes_pos)) } nodes_num = len(rd_nodes_pos) # # # 指定病毒投放节点 pos[0] = (v_x, v_y) rd_nodes_pos[0] = (v_x, v_y) # # # 指定补丁包投放节点 pos[1] = (r_x, r_y) rd_nodes_pos[1] = (r_x, r_y) # sim # # 得到点的边 g = nx.random_geometric_graph(nodes_num, g_r, pos=pos) # lines[0] inf_sim = [] rco_sim = [] for _ in range(5): my_sim = my_model_sim(open=0.5, spr=0.5, eta_low=1, eta_high=1, alpha=0.5, r_t=r_t, beta=1, rho=1, rd_nodes_pos=rd_nodes_pos, nodes_num=nodes_num, sim_time=sim_time, graph=g, g_pos=pos, sur_type=['inf', 'rco'], pic=pic, picName=picName) inf_sim.append(my_sim[0]) rco_sim.append(my_sim[1]) lines.append(avg_lists(inf_sim, 5)) lines.append(avg_lists(rco_sim, 5)) return lines
def draw_graph_2_7(density, side_width, side_height, sim_time, g_r, v_x, v_y, r_x, r_y, r_t): lines = [] # 得到随机节点的坐标 rd_nodes_pos = get_random_position(density, side_width, side_height) pos = { i: (rd_nodes_pos[i][0], rd_nodes_pos[i][1]) for i in range(len(rd_nodes_pos)) } nodes_num = len(rd_nodes_pos) # # # 指定病毒投放节点 pos[0] = (v_x, v_y) rd_nodes_pos[0] = (v_x, v_y) # # # 指定补丁包投放节点 pos[1] = (r_x, r_y) rd_nodes_pos[1] = (r_x, r_y) # sim # # 得到点的边 g = nx.random_geometric_graph(nodes_num, g_r, pos=pos) # lines[0][1] inf_sim = [] sus_sim = [] rco_sim = [] for _ in range(5): org_sim = org_model_sim(beta=0.3, rou=1, r_t=r_t, rd_nodes_pos=rd_nodes_pos, nodes_num=nodes_num, sim_time=sim_time, graph=g, g_pos=pos, sur_type=['inf', 'sus', 'rco']) inf_sim.append(org_sim[0]) sus_sim.append(org_sim[1]) rco_sim.append(org_sim[2]) lines.append(avg_lists(inf_sim, 5)) lines.append(avg_lists(sus_sim, 5)) lines.append(avg_lists(rco_sim, 5)) # plt.clf() # plt.ylabel('I(t)') # plt.xlabel('Time/Unit of Time') # plt.xlim(0, sim_time) # # print fig # plt.plot(lines[0], 'r', label='a') # plt.plot(lines[1], 'com', label='b') # plt.plot(lines[2], 'b', label='c') # plt.plot(lines[3], 'g', label='d') # # plt.plot(lines[4], 'sus', label='e') # # plt.plot(lines[5], 'g', label='f') # plt.legend(loc='lower right') # plt.savefig('test', format='png') return lines
def draw_graph_2_9(density, side_width, side_height, sim_time, g_r, v_x, v_y, r_x, r_y, r_t): lines = [] # 得到随机节点的坐标 rd_nodes_pos = get_random_position(density, side_width, side_height) pos = { i: (rd_nodes_pos[i][0], rd_nodes_pos[i][1]) for i in range(len(rd_nodes_pos)) } nodes_num = len(rd_nodes_pos) # # # 指定病毒投放节点 pos[0] = (v_x, v_y) rd_nodes_pos[0] = (v_x, v_y) # # # 指定补丁包投放节点 pos[1] = (r_x, r_y) rd_nodes_pos[1] = (r_x, r_y) # sim # # 得到点的边 g = nx.random_geometric_graph(nodes_num, g_r, pos=pos) # lines[1] inf_sim = [] sus_sim = [] for _ in range(5): tang_sim = tang_model_sim(a=0.5, s=0.5, beta=0.3, rou=0.3, rd_nodes_pos=rd_nodes_pos, nodes_num=nodes_num, sim_time=sim_time, graph=g, g_pos=pos, sur_type=['inf', 'sus']) inf_sim.append(tang_sim[0]) sus_sim.append(tang_sim[1]) lines.append(avg_lists(inf_sim, 5)) lines.append(avg_lists(sus_sim, 5)) return lines
def draw_graph(density, side_width, side_height, sim_time, g_r, v_x, v_y, r_x, r_y, r_t): lines = [] # 得到随机节点的坐标 rd_nodes_pos = get_random_position(density, side_width, side_height) pos = { i: (rd_nodes_pos[i][0], rd_nodes_pos[i][1]) for i in range(len(rd_nodes_pos)) } nodes_num = len(rd_nodes_pos) # # # 指定病毒投放节点 pos[0] = (v_x, v_y) rd_nodes_pos[0] = (v_x, v_y) # # # 指定补丁包投放节点 pos[1] = (r_x, r_y) rd_nodes_pos[1] = (r_x, r_y) # sim # # 得到点的边 g = nx.random_geometric_graph(nodes_num, g_r, pos=pos) # lines[0] inf_sim = [] for _ in range(5): my_sim = my_model_sim( open=0.5, spr=0.5, eta_low=1, eta_high=1, alpha=0.5, r_t=r_t, beta=0.5, rho=0.6, rd_nodes_pos=rd_nodes_pos, nodes_num=nodes_num, sim_time=sim_time, graph=g, g_pos=pos, sur_type=['inf'], ) inf_sim.append(my_sim[0]) lines.append(avg_lists(inf_sim, 5)) # # # lines[1] inf_sim = [] for _ in range(5): tang_sim = tang_model_sim(a=0.5, s=0.5, beta=0.5, rou=0, rd_nodes_pos=rd_nodes_pos, nodes_num=nodes_num, sim_time=sim_time, graph=g, g_pos=pos, sur_type=['inf']) inf_sim.append(tang_sim[0]) lines.append(avg_lists(inf_sim, 5)) # lines[2] inf_sim = [] for _ in range(5): org_sim = org_model_sim(beta=0.5, rou=0, r_t=r_t, rd_nodes_pos=rd_nodes_pos, nodes_num=nodes_num, sim_time=sim_time, graph=g, g_pos=pos, sur_type=['inf']) inf_sim.append(org_sim[0]) lines.append(avg_lists(inf_sim, 5)) return lines