¥
立即购买

全球变暖趋势可视化专家

168 浏览
12 试用
2 购买
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 提示词价格
¥30.00元
先用后买,用好了再付款,超安全!

您购买后可以获得什么

获得完整提示词模板
- 共 512 tokens
- 3 个可调节参数
{ 数据集 } { 时段 } { 地理范围 }
获得社区贡献内容的使用权
- 精选社区优质案例,助您快速上手提示词
使用提示词兑换券,低至 ¥ 9.9
了解兑换券 →
限时半价

不要错过!

半价获取高级提示词-优惠即将到期

17
:
23
小时
:
59
分钟
:
59