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

如何提前创建画布并在循环中为多站点同日期气象数据绘图?

动态创建画布绘制多站点同日期气象数据

你的核心问题是手动创建画布无法适配未知的日期数量,且原代码循环逻辑易导致绘图混乱。下面是直接可用的优化方案:

优化思路

  1. 提取所有站点涉及的日期,自动适配任意数量的日期
  2. 为每个日期单独创建画布和绘图轴,用字典映射日期与轴对象,方便后续调用
  3. 逐个遍历站点,将每个站点的每日数据对应画到匹配日期的画布上

完整代码

import pandas as pd
import numpy as np
from matplotlib import pyplot as plt

# 示例气象数据(包含3个站点,其中Site_3多了一个01-04日期)
weather_data = {'Site_1': 
                {'Avg': {'01-01': pd.DataFrame(np.random.rand(5,2)), '01-02':pd.DataFrame(np.random.rand(5,2)),
                         '01-03':pd.DataFrame(np.random.rand(5,2))},
                 'Other': {'01-01': 'dummy_data', '01-02': 'dummy_data'}},
                'Site_2':
                {'Avg': {'01-01': pd.DataFrame(np.random.rand(5,2)), '01-02':pd.DataFrame(np.random.rand(5,2)),
                         '01-03':pd.DataFrame(np.random.rand(5,2))},
                 'Other': {'01-01': 'dummy_data', '01-02': 'dummy_data'}},
                'Site_3':
                {'Avg': {'01-01': pd.DataFrame(np.random.rand(5,2)), '01-02':pd.DataFrame(np.random.rand(5,2)),
                         '01-03':pd.DataFrame(np.random.rand(5,2)), '01-04':pd.DataFrame(np.random.rand(5,2))},
                 'Other': {'01-01': 'dummy_data', '01-02': 'dummy_data'}}}

# 提取所有日期(去重并排序)
all_days = set()
for site_info in weather_data.values():
    all_days.update(site_info['Avg'].keys())
all_days = sorted(all_days)

# 为每个日期创建画布和绘图轴,用字典映射日期和轴对象
day_plot_axes = {}
for day in all_days:
    fig, ax = plt.subplots(figsize=(8, 5))
    ax.set_title(f"{day} 各站点气象数据")
    ax.set_xlabel("数值1")
    ax.set_ylabel("数值2")
    day_plot_axes[day] = ax

# 遍历每个站点,把数据画到对应日期的画布上
for site_name, site_data in weather_data.items():
    daily_avg = site_data['Avg']
    for day, df in daily_avg.items():
        # 获取当前日期对应的绘图轴
        ax = day_plot_axes[day]
        # 绘制DataFrame的两列数据
        ax.plot(df.iloc[:, 0], df.iloc[:, 1], label=site_name)
        # 添加图例
        ax.legend()

# 显示所有画布
plt.show()

代码优势

  • 自动适配任意日期数量,无需手动指定画布个数
  • 通过日期字典精准匹配画布,避免数据画错位置
  • 新增站点或日期时无需修改核心逻辑,直接兼容
  • 统一设置标题、坐标轴标签,绘图更规范

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 07:43:11