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

如何循环生成100个Erdos-Renyi图并按序号保存为GraphML文件

生成100个带编号的Erdos-Renyi随机图并保存

优化后的代码实现

将节点数和概率的输入移到循环外(避免重复输入),通过for循环迭代100次,每次生成图后用格式化字符串生成带编号的文件名:

import networkx as nx
import matplotlib.pyplot as plt

def generate_100_erdos_renyi():
    # 仅输入一次节点数和概率
    erdos_renyi_nodes = int(input("Please enter the number of nodes: "))
    erdos_renyi_probability = float(input("Please enter the value of probability: "))
    
    # 循环生成100个图
    for i in range(1, 101):
        # 生成随机图
        G_erdos_renyi = nx.erdos_renyi_graph(erdos_renyi_nodes, erdos_renyi_probability)
        
        # 可选:如果不需要每次都显示图,可注释掉以下3行绘图代码
        nx.draw(G_erdos_renyi, with_labels=True)
        plt.axis('on')
        plt.show()
        plt.close()  # 关闭画布,避免内存占用
        
        # 生成带编号的文件名并保存
        filename = f"my_erdos_renyi_{i}.graphml"
        nx.write_graphml(G_erdos_renyi, filename)
        print(f"Saved {filename}")

generate_100_erdos_renyi()

关键细节

  • 文件名自动编号:用Python的f-string语法f"my_erdos_renyi_{i}.graphml",i从1到100,自动生成连续编号的文件名。
  • 效率优化:节点数和概率仅输入一次,避免循环内重复交互。
  • 内存管理:保留绘图代码时,每次绘图后调用plt.close()关闭画布,防止内存累积。
  • 灵活调整:若不需要预览每个图,直接注释绘图代码即可大幅提升生成速度。

内容的提问来源于stack exchange,提问作者Waqas Ahmad

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 23:40:38