全球变暖趋势可视化专家

11 浏览
1 试用
0 购买
Oct 26, 2025更新

本提示词专为生成全球变暖趋势的可视化图表而设计,能够根据用户提供的数据集或参数,智能分析并呈现温度变化趋势。通过多维度数据整合与可视化技术,帮助研究人员、教育工作者和政策制定者直观理解气候变化的时空分布特征,支持气候数据的深度分析和有效传播。亮点包括自适应数据解析、多尺度趋势呈现和可定制化视觉表达,确保输出结果既科学准确又易于理解。

数据概况

  • 时段:1970–2024(年度)
  • 指标:全球陆海合成温度距平(单位:°C,基准期:1951–1980)
  • 地理范围:全球(陆海合成,0–90°N/S)
  • 行数:19(1970–2005为抽样年份;2010–2024为连续年份)
  • 字段:year, global_anom, land_only, sea_only, lower_CI, upper_CI, source(均完整,无缺失)
  • 数据源:1970–2005为“station+SST”;2010–2024为“blend”

分析结果

  • 总增幅(1970→2024,global_anom):+1.21°C(-0.03→1.18)
  • 端点增速(1970–2024):约+0.224°C/十年
  • 分段增速:
    • 1970–2000:约+0.150°C/十年(-0.03→0.42)
    • 2000–2024:约+0.317°C/十年(0.42→1.18)
    • 2010–2024:约+0.371°C/十年(0.66→1.18)
  • 陆海差异(端点法,1970→2024):
    • 陆地:+1.56°C(0.18→1.74),约+0.289°C/十年
    • 海洋:+0.85°C(0.07→0.92),约+0.157°C/十年
    • 比值(陆/海):≈1.84
  • 时段均值(global_anom):
    • 1970–1989(抽样点):≈0.04°C
    • 1990–2005(抽样点):≈0.45°C
    • 2010–2024(连续年):≈0.95°C
  • 最大值:2024(1.18°C)
  • 置信区间幅度(示例):1975≈0.15°C;2024≈0.14°C

可视化图表

  • 图1:全球年度温度距平与95%置信区间(含y=0参考线与2010数据源切换标记)
{
  "$schema": "https://vega.github.io/schema/vega-lite/v5.json",
  "width": 640,
  "height": 360,
  "data": {
    "values": [
      {"year":1970,"global_anom":-0.03,"land_only":0.02,"sea_only":-0.06,"lower_CI":-0.10,"upper_CI":0.04,"source":"station+SST"},
      {"year":1975,"global_anom":-0.05,"land_only":0.00,"sea_only":-0.08,"lower_CI":-0.12,"upper_CI":0.03,"source":"station+SST"},
      {"year":1980,"global_anom":0.11,"land_only":0.18,"sea_only":0.07,"lower_CI":0.04,"upper_CI":0.18,"source":"station+SST"},
      {"year":1985,"global_anom":0.12,"land_only":0.20,"sea_only":0.08,"lower_CI":0.05,"upper_CI":0.19,"source":"station+SST"},
      {"year":1990,"global_anom":0.34,"land_only":0.49,"sea_only":0.25,"lower_CI":0.27,"upper_CI":0.41,"source":"station+SST"},
      {"year":1995,"global_anom":0.43,"land_only":0.65,"sea_only":0.31,"lower_CI":0.36,"upper_CI":0.50,"source":"station+SST"},
      {"year":2000,"global_anom":0.42,"land_only":0.68,"sea_only":0.29,"lower_CI":0.35,"upper_CI":0.49,"source":"station+SST"},
      {"year":2005,"global_anom":0.61,"land_only":0.98,"sea_only":0.43,"lower_CI":0.54,"upper_CI":0.68,"source":"station+SST"},
      {"year":2010,"global_anom":0.66,"land_only":1.02,"sea_only":0.47,"lower_CI":0.59,"upper_CI":0.73,"source":"blend"},
      {"year":2015,"global_anom":0.89,"land_only":1.30,"sea_only":0.66,"lower_CI":0.82,"upper_CI":0.96,"source":"blend"},
      {"year":2016,"global_anom":0.99,"land_only":1.45,"sea_only":0.74,"lower_CI":0.92,"upper_CI":1.06,"source":"blend"},
      {"year":2017,"global_anom":0.92,"land_only":1.37,"sea_only":0.69,"lower_CI":0.85,"upper_CI":0.99,"source":"blend"},
      {"year":2018,"global_anom":0.83,"land_only":1.24,"sea_only":0.62,"lower_CI":0.76,"upper_CI":0.90,"source":"blend"},
      {"year":2019,"global_anom":0.95,"land_only":1.39,"sea_only":0.72,"lower_CI":0.88,"upper_CI":1.02,"source":"blend"},
      {"year":2020,"global_anom":1.02,"land_only":1.49,"sea_only":0.77,"lower_CI":0.95,"upper_CI":1.09,"source":"blend"},
      {"year":2021,"global_anom":0.98,"land_only":1.45,"sea_only":0.74,"lower_CI":0.91,"upper_CI":1.05,"source":"blend"},
      {"year":2022,"global_anom":0.95,"land_only":1.42,"sea_only":0.72,"lower_CI":0.88,"upper_CI":1.02,"source":"blend"},
      {"year":2023,"global_anom":1.12,"land_only":1.67,"sea_only":0.86,"lower_CI":1.05,"upper_CI":1.19,"source":"blend"},
      {"year":2024,"global_anom":1.18,"land_only":1.74,"sea_only":0.92,"lower_CI":1.11,"upper_CI":1.25,"source":"blend"}
    ]
  },
  "layer": [
    {
      "mark": {"type": "area", "opacity": 0.25, "color": "#9ecae1"},
      "encoding": {
        "x": {"field": "year", "type": "quantitative", "title": "Year"},
        "y": {"field": "lower_CI", "type": "quantitative", "title": "Anomaly (°C)"},
        "y2": {"field": "upper_CI"},
        "tooltip": [
          {"field":"year","type":"quantitative"},
          {"field":"global_anom","type":"quantitative","title":"Global"},
          {"field":"lower_CI","type":"quantitative","title":"Lower CI"},
          {"field":"upper_CI","type":"quantitative","title":"Upper CI"}
        ]
      }
    },
    {
      "mark": {"type": "line", "color": "#08519c", "strokeWidth": 2},
      "encoding": {
        "x": {"field": "year", "type": "quantitative"},
        "y": {"field": "global_anom", "type": "quantitative"},
        "tooltip": [
          {"field":"year","type":"quantitative"},
          {"field":"global_anom","type":"quantitative","title":"Global"}
        ]
      }
    },
    {
      "mark": {"type": "rule", "color": "#666", "strokeDash": [4,4]},
      "encoding": {"x": {"value": 2010}}
    },
    {
      "mark": {"type": "rule", "color": "#999"},
      "encoding": {"y": {"value": 0}}
    }
  ],
  "config": {"axis": {"grid": true}}
}
  • 图2:陆地与海洋年度距平对比(两条线,统一尺度)
{
  "$schema": "https://vega.github.io/schema/vega-lite/v5.json",
  "width": 640,
  "height": 360,
  "data": {
    "values": [
      {"year":1970,"land_only":0.02,"sea_only":-0.06},
      {"year":1975,"land_only":0.00,"sea_only":-0.08},
      {"year":1980,"land_only":0.18,"sea_only":0.07},
      {"year":1985,"land_only":0.20,"sea_only":0.08},
      {"year":1990,"land_only":0.49,"sea_only":0.25},
      {"year":1995,"land_only":0.65,"sea_only":0.31},
      {"year":2000,"land_only":0.68,"sea_only":0.29},
      {"year":2005,"land_only":0.98,"sea_only":0.43},
      {"year":2010,"land_only":1.02,"sea_only":0.47},
      {"year":2015,"land_only":1.30,"sea_only":0.66},
      {"year":2016,"land_only":1.45,"sea_only":0.74},
      {"year":2017,"land_only":1.37,"sea_only":0.69},
      {"year":2018,"land_only":1.24,"sea_only":0.62},
      {"year":2019,"land_only":1.39,"sea_only":0.72},
      {"year":2020,"land_only":1.49,"sea_only":0.77},
      {"year":2021,"land_only":1.45,"sea_only":0.74},
      {"year":2022,"land_only":1.42,"sea_only":0.72},
      {"year":2023,"land_only":1.67,"sea_only":0.86},
      {"year":2024,"land_only":1.74,"sea_only":0.92}
    ]
  },
  "transform": [{"fold": ["land_only", "sea_only"], "as": ["series", "anom"]}],
  "mark": {"type": "line", "point": true},
  "encoding": {
    "x": {"field": "year", "type": "quantitative", "title": "Year"},
    "y": {"field": "anom", "type": "quantitative", "title": "Anomaly (°C)"},
    "color": {"field": "series", "type": "nominal", "scale": {"domain": ["land_only","sea_only"], "range": ["#e31a1c","#1f78b4"]}}
  },
  "config": {"axis": {"grid": true}}
}
  • 图3:陆地与海洋差值(陆地−海洋)
{
  "$schema": "https://vega.github.io/schema/vega-lite/v5.json",
  "width": 640,
  "height": 300,
  "data": {
    "values": [
      {"year":1970,"land_only":0.02,"sea_only":-0.06},
      {"year":1975,"land_only":0.00,"sea_only":-0.08},
      {"year":1980,"land_only":0.18,"sea_only":0.07},
      {"year":1985,"land_only":0.20,"sea_only":0.08},
      {"year":1990,"land_only":0.49,"sea_only":0.25},
      {"year":1995,"land_only":0.65,"sea_only":0.31},
      {"year":2000,"land_only":0.68,"sea_only":0.29},
      {"year":2005,"land_only":0.98,"sea_only":0.43},
      {"year":2010,"land_only":1.02,"sea_only":0.47},
      {"year":2015,"land_only":1.30,"sea_only":0.66},
      {"year":2016,"land_only":1.45,"sea_only":0.74},
      {"year":2017,"land_only":1.37,"sea_only":0.69},
      {"year":2018,"land_only":1.24,"sea_only":0.62},
      {"year":2019,"land_only":1.39,"sea_only":0.72},
      {"year":2020,"land_only":1.49,"sea_only":0.77},
      {"year":2021,"land_only":1.45,"sea_only":0.74},
      {"year":2022,"land_only":1.42,"sea_only":0.72},
      {"year":2023,"land_only":1.67,"sea_only":0.86},
      {"year":2024,"land_only":1.74,"sea_only":0.92}
    ]
  },
  "transform": [{"calculate": "datum.land_only - datum.sea_only", "as": "land_minus_sea"}],
  "mark": {"type": "line", "point": true, "color": "#33a02c"},
  "encoding": {
    "x": {"field": "year", "type": "quantitative", "title": "Year"},
    "y": {"field": "land_minus_sea", "type": "quantitative", "title": "Land − Sea (°C)"},
    "tooltip": [{"field":"year"},{"field":"land_minus_sea","title":"Δ(land-sea)"}]
  },
  "layer": [
    {
      "mark": {"type": "rule", "color": "#999"},
      "encoding": {"y": {"value": 0}}
    }
  ],
  "config": {"axis": {"grid": true}}
}

关键结论

  • 1970–2024全球年度距平总体升高约+1.21°C,端点增速约+0.224°C/十年
  • 2000年以来增速提升,2010–2024端点增速约+0.371°C/十年
  • 陆地升温幅度与速率均高于海洋,端点比值约1.84
  • 2024为全序列最高年(1.18°C),近年均值约0.95°C

技术说明

  • 数据验证:字段完整性与单位一致性检查;源类型切换标记(2010)
  • 统计方法:端点增幅与分段年均增速;陆海差值计算
  • 置信区间:按年度提供的lower_CI与upper_CI绘制区间带
  • 可视化:Vega-Lite v5;统一线性尺度,包含y=0参考线;颜色区分陆/海
  • 参数:宽度640、高度300–360;不使用平滑;基准期1951–1980

数据概况

  • 数据来源与范围
    • 区域:亚洲主要人口带(10°N–55°N),东亚样本
    • 基准期:1981–2010
    • 变量与单位:气温距平(°C anomaly)
    • 时间与采样:1995、2005、2015、2023年,1月与7月季节样本
    • 空间类型:Urban、Rural
  • 数据量与字段
    • 记录数:16
    • 字段:date, subregion, area_type, temp_anomaly_C, stations
  • 质量与完整性
    • 缺失值:无
    • 重复记录:无
    • 一致性:仅含1月与7月样本;尾行注释已剔除(不影响数据字段)
    • 站点覆盖:随时间增加(Urban与Rural均提升)
  • 站点覆盖变化(平均值,按年在1月与7月取均)
    • Urban:1995年 128 → 2023年 186.5(+58.5,+45.7%)
    • Rural:1995年 101.5 → 2023年 142(+40.5,+39.9%)

分析结果

  • 线性增暖趋势(最小二乘,单位:°C/十年)
    • 1月 Urban:+0.270;1月 Rural:+0.211
    • 7月 Urban:+0.289;7月 Rural:+0.247
  • 端点变化(1995→2023,单位:°C)
    • 1月 Urban:+0.74(0.21→0.95);1月 Rural:+0.58(0.10→0.68)
    • 7月 Urban:+0.79(0.45→1.24);7月 Rural:+0.67(0.30→0.97)
  • 城乡差异(Urban−Rural,单位:°C)
    • 1月:0.11(1995)→0.27(2023),增幅趋势约+0.059/十年
    • 7月:0.15(1995)→0.27(2023),增幅趋势约+0.042/十年
  • 季节幅度(7月−1月,单位:°C)
    • Urban:0.24(1995)→0.29(2023),趋势约+0.019/十年
    • Rural:0.20(1995)→0.29(2023),趋势约+0.035/十年

可视化图表

  • 图1(时间序列与趋势):1995–2023年1月与7月气温距平,分Urban/Rural对比,统一y轴(0–1.4°C),标注线性趋势斜率(°C/十年),以颜色区分城乡、线型区分月份
  • 图2(城乡差异):Urban−Rural距平差值(1月与7月两条线),统一y轴(0–0.35°C),展示差异随时间增强
  • 图3(站点覆盖):各年Urban/Rural平均站点数量条形对比,统一y轴(0–200),呈现覆盖增长

可复现代码(Python,pandas+seaborn+matplotlib):

# -*- coding: utf-8 -*-
import io, textwrap
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns

raw = textwrap.dedent("""
meta: region=Asia, baseline=1981-2010, unit=°C anomaly
columns: date,subregion,area_type,temp_anomaly_C,stations
1995-01,东亚,Urban,0.21,124
1995-01,东亚,Rural,0.10,98
1995-07,东亚,Urban,0.45,132
1995-07,东亚,Rural,0.30,105
2005-01,东亚,Urban,0.38,148
2005-01,东亚,Rural,0.24,112
2005-07,东亚,Urban,0.62,156
2005-07,东亚,Rural,0.41,118
2015-01,东亚,Urban,0.71,169
2015-01,东亚,Rural,0.49,126
2015-07,东亚,Urban,0.98,177
2015-07,东亚,Rural,0.73,132
2023-01,东亚,Urban,0.95,182
2023-01,东亚,Rural,0.68,139
2023-07,东亚,Urban,1.24,191
2023-07,东亚,Rural,0.97,145;分析时段:1995-2023年(季节样本,重点对比1995/2005/2015/2023);地理范围:亚洲主要人口带(10°N–55°N,东亚样本)
""").strip()

# 解析meta与columns
lines = [l.strip() for l in raw.splitlines() if l.strip()]
meta_line = [l for l in lines if l.startswith("meta:")][0]
cols_line = [l for l in lines if l.startswith("columns:")][0]
data_lines = [l for l in lines if not (l.startswith("meta:") or l.startswith("columns:"))]

# 处理尾部中文分号注释
clean_data_lines = []
for l in data_lines:
    l = l.split(';')[0].strip()
    if l:
        clean_data_lines.append(l)

cols = cols_line.replace("columns:", "").strip()
csv_text = "\n".join([cols] + clean_data_lines)
df = pd.read_csv(io.StringIO(csv_text), parse_dates=['date'])

# 预处理
df['year'] = df['date'].dt.year
df['month'] = df['date'].dt.month
df = df.sort_values(['year','month','area_type'])

# 趋势计算函数(最小二乘,斜率单位:°C/十年)
def fit_trend(sub):
    x = sub['year'].values.astype(float)
    y = sub['temp_anomaly_C'].values.astype(float)
    # 相对起点年份以稳定拟合
    x0 = x - x.min()
    k, b = np.polyfit(x0, y, 1)  # k: °C/年
    return pd.Series({
        'slope_per_decade': k * 10.0,
        'intercept_at_start': b,  # 对应x0=0(起始年)
    })

trend = (df.groupby(['area_type','month'])
           .apply(fit_trend)
           .reset_index())

# 图形风格
sns.set(context="talk", style="whitegrid", font="DejaVu Sans")
palette = {'Urban': '#d62728', 'Rural': '#1f77b4'}
linestyles = {1: '-', 7: '--'}
month_label = {1: 'Jan', 7: 'Jul'}

# 图1:时间序列与趋势
fig, ax = plt.subplots(figsize=(9,5), dpi=150)
for (a,m), sub in df.groupby(['area_type','month']):
    sub = sub.sort_values('year')
    label = f"{a}-{month_label[m]}"
    ax.plot(sub['year'], sub['temp_anomaly_C'],
            marker='o', color=palette[a], linestyle=linestyles[m], label=label)
    # 趋势线
    x = sub['year'].values
    x0 = x - x.min()
    k, b = np.polyfit(x0, sub['temp_anomaly_C'].values, 1)
    yhat = k * x0 + b
    ax.plot(x, yhat, color=palette[a], linestyle=':', alpha=0.8)
# 统一轴
ax.set_ylim(0, 1.4)
ax.set_xlim(1994, 2024)
ax.set_xlabel("Year")
ax.set_ylabel("Temperature Anomaly (°C, baseline 1981–2010)")
ax.set_title("East Asia (10°N–55°N) | Jan & Jul Anomalies and Linear Trends")
ax.legend(ncol=2, frameon=True)
plt.tight_layout()

# 图2:城乡差异(Urban−Rural)
pivot = df.pivot_table(index=['year','month'], columns='area_type',
                       values='temp_anomaly_C').reset_index()
pivot['UR_gap'] = pivot['Urban'] - pivot['Rural']

fig2, ax2 = plt.subplots(figsize=(9,4.5), dpi=150)
for m, sub in pivot.groupby('month'):
    sub = sub.sort_values('year')
    ax2.plot(sub['year'], sub['UR_gap'], marker='o',
             linestyle=linestyles[m], label=f"Gap {month_label[m]}", color='#2ca02c')
ax2.set_ylim(0, 0.35)
ax2.set_xlim(1994, 2024)
ax2.set_xlabel("Year")
ax2.set_ylabel("Urban − Rural Anomaly (°C)")
ax2.set_title("Urban–Rural Anomaly Gap (Jan vs Jul)")
ax2.legend(frameon=True)
plt.tight_layout()

# 图3:站点覆盖变化(按年均值)
stations = (df.groupby(['year','area_type'])['stations']
              .mean()
              .reset_index())
fig3, ax3 = plt.subplots(figsize=(9,4.5), dpi=150)
width = 3.5
years = sorted(stations['year'].unique())
for i, a in enumerate(['Urban','Rural']):
    sub = stations[stations['area_type'] == a].sort_values('year')
    offs = (-0.5 if a == 'Urban' else 0.5) * 2.0
    ax3.bar(sub['year'] + offs, sub['stations'], width=3.0,
            color=palette[a], alpha=0.8, label=a)
ax3.set_ylim(0, 200)
ax3.set_xlim(1992, 2026)
ax3.set_xlabel("Year")
ax3.set_ylabel("Average Stations (Jan & Jul)")
ax3.set_title("Station Coverage by Area Type")
ax3.legend(frameon=True)
plt.tight_layout()

plt.show()

# 控制台输出:趋势表
print(trend.sort_values(['area_type','month']))

关键结论

  • 1995–2023年东亚样本在1月与7月均呈显著增暖,7月增暖速率略高于1月
  • Urban增暖速率高于Rural(约+0.04–0.06°C/十年差异),城乡距平差随时间扩大
  • 夏季(7月)距平高于冬季(1月),季节幅度略有增强
  • 站点覆盖随时间提升,Urban与Rural均有增加

技术说明

  • 方法:按area_type×month分组,最小二乘线性回归估计斜率(°C/年)并换算为°/十年;端点差值为2023减1995;城乡差为Urban−Rural
  • 变量:temp_anomaly_C(相对1981–2010距平);stations用于覆盖度评估,不参与距平加权
  • 视觉:统一y轴范围(图1:0–1.4°C;图2:0–0.35°C;图3:0–200)以避免误读;颜色区分城乡,线型区分月份
  • 数据:仅含1月与7月季节样本与4个时间节点,结论限定于所给样本与区域条件

数据概况

  • 数据来源与范围:北极圈纬度带 70N–90N;时间范围 1980–2024 年;季节性抽样月份:1/4/7/10 月
  • 变量与单位:温度距平(°C anomaly),海冰面积(million km²)
  • 记录数与结构:共 24 条记录(6 个年份 × 4 个季节)
  • 完整性与一致性:无缺失值、无重复值;单位一致;时间戳为年月;空间带一致(70N–90N)
  • 数据代表性:季节性抽样且跨年间隔不均(10 年为主,近年 4 年),适合季节分组趋势分析,不适合日/月内变率评估

分析结果

  • 全期季节平均(四季均值)线性趋势(1980–2024):
    • 温度距平:+0.47 °C/十年(约 +2.00 °C 增幅)
    • 海冰面积:-0.68 million km²/十年(约 -2.93 million km² 减幅)
  • 分季节线性趋势(OLS,斜率±单位/十年;括号内为1980→2024净变化):
    • 1 月:温度 +0.51 °C/十年(+2.23 °C);海冰 -0.59 million km²/十年(-2.6)
    • 4 月:温度 +0.47 °C/十年(+2.02 °C);海冰 -0.69 million km²/十年(-3.0)
    • 7 月:温度 +0.42 °C/十年(+1.77 °C);海冰 -0.75 million km²/十年(-3.1)
    • 10 月:温度 +0.47 °C/十年(+1.96 °C);海冰 -0.70 million km²/十年(-3.0)
  • 温度与海冰的相关性(Pearson,分季节):
    • 1 月 r ≈ -0.98;4 月 r ≈ -0.96;7 月 r ≈ -0.98;10 月 r ≈ -0.99
  • 关键时段与幅度特征:
    • 1990s→2010s 为增暖与减冰加速期,2020s 延续增暖高位与低海冰面积
    • 夏季(7 月)海冰下降斜率最大;冬季至春季(1–4 月)海冰仍呈显著下降

可视化图表

  • 图1 时间序列(分季节)— 温度距平(1980–2024,1/4/7/10 月)
    • 四个子图(或一图四色折线+趋势线),纵轴:°C anomaly;横轴:年份;包含 OLS 趋势线与年份标注
  • 图2 时间序列(分季节)— 海冰面积(1980–2024,1/4/7/10 月)
    • 四个子图(或一图四色折线+趋势线),纵轴:million km²;横轴:年份;包含 OLS 趋势线
  • 图3 散点图(分季节)— 温度距平 vs 海冰面积
    • 四个子图,横轴:°C anomaly;纵轴:million km²;含线性拟合与95%置信带;展示强负相关
  • 图4 年度季节均值序列(四季均值)
    • 两行小倍数图:上行温度距平均值,下行海冰面积均值;分别含 OLS 趋势线

可复现代码(Python/Matplotlib/Seaborn):

import pandas as pd, numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
from scipy import stats

# ----- 参数 -----
SEASONS = {1:"Jan",4:"Apr",7:"Jul",10:"Oct"}
COLOR = {"Jan":"#d62728","Apr":"#2ca02c","Jul":"#1f77b4","Oct":"#9467bd"}

# ----- 数据 -----
csv = """date,lat_band,temp_anomaly_C,sea_ice_extent_mkm2
1980-01,70N–90N,0.12,15.2
1980-04,70N–90N,0.08,14.1
1980-07,70N–90N,-0.05,9.1
1980-10,70N–90N,0.10,10.7
1990-01,70N–90N,0.35,14.7
1990-04,70N–90N,0.22,13.6
1990-07,70N–90N,0.10,8.8
1990-10,70N–90N,0.28,10.3
2000-01,70N–90N,0.62,14.1
2000-04,70N–90N,0.47,12.7
2000-07,70N–90N,0.35,7.8
2000-10,70N–90N,0.55,9.6
2010-01,70N–90N,1.21,13.5
2010-04,70N–90N,1.05,12.0
2010-07,70N–90N,0.92,6.9
2010-10,70N–90N,1.16,8.8
2020-01,70N–90N,1.98,12.9
2020-04,70N–90N,1.72,11.5
2020-07,70N–90N,1.48,6.3
2020-10,70N–90N,1.83,8.1
2024-01,70N–90N,2.35,12.6
2024-04,70N–90N,2.10,11.1
2024-07,70N–90N,1.72,6.0
2024-10,70N–90N,2.06,7.7
"""
df = pd.read_csv(pd.compat.StringIO(csv))
df["date"] = pd.to_datetime(df["date"])
df["year"] = df["date"].dt.year
df["month"] = df["date"].dt.month
df = df[df["month"].isin(SEASONS.keys())].copy()
df["season"] = df["month"].map(SEASONS)

# 年度季节均值(四季均值)
annual = df.groupby("year", as_index=False).agg(
    temp=("temp_anomaly_C","mean"),
    ice=("sea_ice_extent_mkm2","mean")
)

# ----- 图1&图2:分季节时间序列 -----
fig, axes = plt.subplots(2,2, figsize=(11,7), sharex=False)
axes = axes.ravel()
for i, (m, name) in enumerate(SEASONS.items()):
    d = df[df["season"]==name].sort_values("year")
    # 温度
    ax = axes[i]
    ax.plot(d["year"], d["temp_anomaly_C"], marker="o", color=COLOR[name], label=f"{name} Temp")
    # OLS 趋势
    slope, intercept, r, p, se = stats.linregress(d["year"], d["temp_anomaly_C"])
    x = np.array([d["year"].min(), d["year"].max()])
    ax.plot(x, intercept + slope*x, color=COLOR[name], linestyle="--", alpha=0.7,
            label=f"Trend: {slope*10:+.2f} °C/dec")
    ax.set_title(f"{name} Temperature Anomaly")
    ax.set_ylabel("°C anomaly")
    ax.grid(True, alpha=0.3)
    ax.legend()

fig.tight_layout()
plt.show()

fig, axes = plt.subplots(2,2, figsize=(11,7), sharex=False)
axes = axes.ravel()
for i, (m, name) in enumerate(SEASONS.items()):
    d = df[df["season"]==name].sort_values("year")
    # 海冰
    ax = axes[i]
    ax.plot(d["year"], d["sea_ice_extent_mkm2"], marker="o", color=COLOR[name], label=f"{name} Ice")
    # OLS 趋势
    slope, intercept, r, p, se = stats.linregress(d["year"], d["sea_ice_extent_mkm2"])
    x = np.array([d["year"].min(), d["year"].max()])
    ax.plot(x, intercept + slope*x, color=COLOR[name], linestyle="--", alpha=0.7,
            label=f"Trend: {slope*10:+.2f} m km²/dec")
    ax.set_title(f"{name} Sea Ice Extent")
    ax.set_ylabel("million km²")
    ax.grid(True, alpha=0.3)
    ax.legend()

fig.tight_layout()
plt.show()

# ----- 图3:温度 vs 海冰(分季节) -----
fig, axes = plt.subplots(2,2, figsize=(11,7), sharex=False, sharey=False)
axes = axes.ravel()
for i, (m, name) in enumerate(SEASONS.items()):
    d = df[df["season"]==name]
    ax = axes[i]
    sns.regplot(data=d, x="temp_anomaly_C", y="sea_ice_extent_mkm2",
                scatter_kws=dict(color=COLOR[name]), line_kws=dict(color=COLOR[name], linestyle="--"), ax=ax)
    r = d["temp_anomaly_C"].corr(d["sea_ice_extent_mkm2"])
    ax.set_title(f"{name}: r={r:.2f}")
    ax.set_xlabel("Temperature anomaly (°C)")
    ax.set_ylabel("Sea ice extent (million km²)")
    ax.grid(True, alpha=0.3)

fig.tight_layout()
plt.show()

# ----- 图4:年度季节均值 -----
fig, axes = plt.subplots(2,1, figsize=(10,6), sharex=True)
axes[0].plot(annual["year"], annual["temp"], marker="o", color="#ff7f0e", label="Annual mean temp anomaly")
slope, intercept, *_ = stats.linregress(annual["year"], annual["temp"])
x = np.array([annual["year"].min(), annual["year"].max()])
axes[0].plot(x, intercept + slope*x, linestyle="--", color="#ff7f0e", label=f"Trend {slope*10:+.2f} °C/dec")
axes[0].set_ylabel("°C anomaly"); axes[0].grid(True, alpha=0.3); axes[0].legend()

axes[1].plot(annual["year"], annual["ice"], marker="o", color="#17becf", label="Annual mean sea ice")
slope, intercept, *_ = stats.linregress(annual["year"], annual["ice"])
axes[1].plot(x, intercept + slope*x, linestyle="--", color="#17becf", label=f"Trend {slope*10:+.2f} m km²/dec")
axes[1].set_xlabel("Year"); axes[1].set_ylabel("million km²"); axes[1].grid(True, alpha=0.3); axes[1].legend()
fig.suptitle("Arctic (70N–90N) seasonal means (Jan/Apr/Jul/Oct)")
fig.tight_layout()
plt.show()

关键结论

  • 1980–2024 年北极 70N–90N 带在四季均值上增暖约 2.0 °C,对应海冰面积减少约 2.9 million km²
  • 各季节均呈显著增暖与减冰趋势,其中夏季(7 月)海冰下降速率最大(约 -0.75 million km²/十年)
  • 温度距平与海冰面积在各季节均呈显著负相关(|r|≈0.96–0.99)
  • 1990s 之后增暖与海冰减少同步增强,2020s 维持高温与低海冰格局

技术说明

  • 数据处理:按指定 1/4/7/10 月季节分组;剔除缺失与重复(未检出);年度季节均值为四季等权平均
  • 趋势估计:对各季节与年度季节均值分别进行一元线性回归(OLS),时间自变量为年份;斜率换算为每十年变化
  • 相关分析:分季节计算温度与海冰的 Pearson 相关系数
  • 可视化:分面小倍数时间序列与散点回归;不使用双轴;统一单位与标尺标注;趋势线为 OLS 拟合
  • 注意事项:样本为季节性稀疏抽样(6 个年份),结论适用于本数据所覆盖的时间与空间范围

示例详情

适用用户

气候研究人员与研究生

快速完成区域升温趋势对比,识别关键拐点与异常年份,生成可用于论文与研讨会的图表与要点摘要。

政府与城市规划部门

评估重点城区热风险,比较治理方案前后趋势,制作可汇报图表支持预算论证、项目立项与公众沟通。

环境教育者与科普组织

制作一课一图的教学素材,展示本地与全球温度变化,配合讲解与讨论,提升学生与公众理解与参与度。

解决的问题

将零散的气候数据与关键参数,快速转化为可信、好看、可演示的全球变暖趋势图与精炼结论,覆盖研究报告、课堂教学、政策简报三大高频场景。通过标准化的分析与输出结构,显著缩短从数据到洞察的时间,提升说服力与传播效果,并支持按需定制图表风格、尺度与重点,让团队以更低门槛产出专家级成果。

特征总结

一键生成多维度气温趋势图,直观呈现地区与时段变化细节与异常波动
自动识别显著升温时段与热点区域,输出可直接用于汇报的重点摘要
支持时间序列与空间分布组合呈现,轻松对比不同城市、年份与情景
自适应解析多来源数据,自动清理缺失与异常,显著减少手工整理时间
可定制配色、阈值与标注样式,快速贴合品牌规范与课堂教学需求与讲解节奏
内置趋势解读与风险提示,帮助非专业人士也能读懂关键气候信号及影响
一键导出完整报告结构,含数据概览、图表与结论,直接用于沟通决策
支持多尺度分析,从全球到城市级随时切换,洞察局地与整体差异与变化轨迹
提供数据质量体检清单,提前暴露缺口与偏差,避免误读与误判风险
模板化与参数化调用,复用常见场景配置,批量任务高效完成与交付

如何使用购买的提示词模板

1. 直接在外部 Chat 应用中使用

将模板生成的提示词复制粘贴到您常用的 Chat 应用(如 ChatGPT、Claude 等),即可直接对话使用,无需额外开发。适合个人快速体验和轻量使用场景。

2. 发布为 API 接口调用

把提示词模板转化为 API,您的程序可任意修改模板参数,通过接口直接调用,轻松实现自动化与批量处理。适合开发者集成与业务系统嵌入。

3. 在 MCP Client 中配置使用

在 MCP client 中配置对应的 server 地址,让您的 AI 应用自动调用提示词模板。适合高级用户和团队协作,让提示词在不同 AI 工具间无缝衔接。

AI 提示词价格
¥20.00元
先用后买,用好了再付款,超安全!

您购买后可以获得什么

获得完整提示词模板
- 共 512 tokens
- 3 个可调节参数
{ 数据集 } { 时段 } { 地理范围 }
获得社区贡献内容的使用权
- 精选社区优质案例,助您快速上手提示词
限时免费

不要错过!

免费获取高级提示词-优惠即将到期

17
:
23
小时
:
59
分钟
:
59