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

如何自动化批量创建列表并实现大规模模拟数据采集与绘图?

规模化优化模拟数据采集与绘图代码

针对你需要扩展到数百个位置的需求,我们可以通过字典存储+循环遍历的方式完全自动化重复步骤,避免手动编写数百行冗余代码。优化后的代码如下:

import numpy as np
import matplotlib.pyplot as plt

# --------------------------
# 配置所有需要处理的位置名称
# 这里可以直接扩展到数百个位置,比如['C1','C2',...,'C100']
# --------------------------
locations = ['C1', 'C2', 'C3']

# --------------------------
# 1. 自动化创建空列表(用字典统一管理)
# --------------------------
concentration_data = {loc: [] for loc in locations}

# --------------------------
# 2. 自动化定位所有位置 + 3. 自动化更新模拟数据
# --------------------------
with Simulation('Generic_File_Name.file') as sim:
    X = testing(sim, config)
    # 一次性获取所有位置的对象
    link_objects = {loc: Links(sim)[loc] for loc in locations}
    
    for step in sim:
        X.updateXState()
        # 遍历所有位置,自动追加数据
        for loc in locations:
            concentration_data[loc].append(link_objects[loc].concentration['Solid_W'])

# --------------------------
# 4. 创建绘图x轴数据(无需修改,兼容任意数量的位置)
# --------------------------
start = 0.0
# 取任意一个位置的数据长度即可,所有位置数据长度一致
stop = len(next(iter(concentration_data.values())))
interval = 1
t = np.arange(start, stop, interval)

# --------------------------
# 5. 自动化绘图
# --------------------------
for loc, data in concentration_data.items():
    plt.plot(t, data, label=loc)

plt.legend()
plt.show()

优化说明:

  • 统一存储结构:用字典concentration_data和link_objects替代零散变量,不管有多少个位置,都能统一管理,避免变量名爆炸。
  • 循环替代重复代码:所有需要重复执行的步骤(创建列表、获取位置、追加数据、绘图)都通过循环完成,新增位置只需要在locations列表里添加名称即可。
  • 兼容性强:x轴数据的生成通过next(iter(concentration_data.values()))获取任意一组数据的长度,确保不管有多少个位置都能正常工作。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 23:01:28