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

使用ggplot2在同一图表中绘制不同年份的两条温度曲线

两年温度数据对比绘图解决方案

核心思路是保留不同年份的月日信息,统一基准年份(比如固定用2020年),让x轴以标准日期格式展示,同时用两条曲线分别对应不同年份的温度数据,实现直观对比。

步骤1:数据预处理(以Python Pandas为例)

先确保日期列是datetime类型,拆分目标年份的数据,生成用于绘图的统一基准日期:

import pandas as pd
import matplotlib.pyplot as plt
import matplotlib.dates as mdates

# 读取数据并解析日期列(替换成你的数据路径和日期列名)
df = pd.read_csv('temp_data.csv', parse_dates=['date'])

# 拆分两年的数据(这里以2021和2022年为例)
df_2021 = df[df['date'].dt.year == 2021].copy()
df_2022 = df[df['date'].dt.year == 2022].copy()

# 生成统一基准年的日期(仅保留月日,年份替换为固定值)
df_2021['plot_date'] = df_2021['date'].apply(lambda x: x.replace(year=2020))
df_2022['plot_date'] = df_2022['date'].apply(lambda x: x.replace(year=2020))

步骤2:绘制对比曲线

用Matplotlib绘制两条曲线,同时配置x轴的日期显示格式:

plt.figure(figsize=(10, 6))

# 绘制两年的温度曲线
plt.plot(df_2021['plot_date'], df_2021['temp'], label='2021年', linewidth=2)
plt.plot(df_2022['plot_date'], df_2022['temp'], label='2022年', linewidth=2)

# 配置x轴日期显示格式(月-日)
plt.gca().xaxis.set_major_formatter(mdates.DateFormatter('%m-%d'))
# 设置x轴刻度间隔(每周一个刻度,避免拥挤)
plt.gca().xaxis.set_major_locator(mdates.WeekdayLocator())

# 图表美化
plt.xlabel('日期', fontsize=12)
plt.ylabel('温度(℃)', fontsize=12)
plt.title('两年温度趋势对比', fontsize=14)
plt.legend(fontsize=12)
plt.xticks(rotation=45)
plt.tight_layout()

plt.show()

特殊情况处理

如果数据包含闰年的2月29日,可选择以下方式处理:

  • 用2020年(闰年)作为基准年,直接保留2月29日
  • 把闰年的2月29日替换为2月28日:x.replace(month=2, day=28)
  • 直接过滤该日期:df = df[~((df['date'].dt.month == 2) & (df['date'].dt.day == 29))]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 08:52:24