本代码示例演示如何使用 Python 读取数据文件,计算三个指数的年平均值,并绘制其年平均时间序列变化图。图中正(负)位项分别用红色(蓝色)填充,对于 Nino3.4 指数 >1 (红色),<-1 (蓝色)。

代码示例:

import pandas as pd
import matplotlib.pyplot as plt

# 1. 读取数据文件
data = pd.read_csv('data.csv')  # 替换为您的数据文件路径

# 2. 计算三个指数的年平均值
annual_mean = data.groupby(data['年份'])['指数1', '指数2', '指数3'].mean()

# 3. 绘制年平均时间序列变化图
plt.figure(figsize=(12, 6))

# 指数 1
plt.subplot(3, 1, 1)
plt.plot(annual_mean['指数1'], color='black')
plt.fill_between(annual_mean.index, annual_mean['指数1'], where=(annual_mean['指数1'] > 0), color='red', alpha=0.5)
plt.fill_between(annual_mean.index, annual_mean['指数1'], where=(annual_mean['指数1'] < 0), color='blue', alpha=0.5)
plt.title('指数 1 年平均时间序列图')
plt.xlabel('年份')
plt.ylabel('指数 1 值')
plt.xticks(range(1850, 2021, 10))

# 指数 2
plt.subplot(3, 1, 2)
plt.plot(annual_mean['指数2'], color='black')
plt.fill_between(annual_mean.index, annual_mean['指数2'], where=(annual_mean['指数2'] > 0), color='red', alpha=0.5)
plt.fill_between(annual_mean.index, annual_mean['指数2'], where=(annual_mean['指数2'] < 0), color='blue', alpha=0.5)
plt.title('指数 2 年平均时间序列图')
plt.xlabel('年份')
plt.ylabel('指数 2 值')
plt.xticks(range(1850, 2021, 10))

# 指数 3
plt.subplot(3, 1, 3)
plt.plot(annual_mean['指数3'], color='black')
plt.fill_between(annual_mean.index, annual_mean['指数3'], where=(annual_mean['指数3'] > 1), color='red', alpha=0.5)
plt.fill_between(annual_mean.index, annual_mean['指数3'], where=(annual_mean['指数3'] < -1), color='blue', alpha=0.5)
plt.title('指数 3 年平均时间序列图')
plt.xlabel('年份')
plt.ylabel('指数 3 值')
plt.xticks(range(1850, 2021, 10))

plt.tight_layout()
plt.show()

解释:

  • 导入库:导入 Pandas 和 Matplotlib 库用于数据处理和绘图。
  • 读取数据文件:使用 pd.read_csv() 读取您的数据文件,确保替换 'data.csv' 为您的实际文件路径。
  • 计算年平均值:使用 groupby() 按年份分组数据,并使用 mean() 计算每个指数的年平均值。
  • 绘制时间序列图
    • 使用 plt.figure() 创建一个图形。
    • 使用 plt.subplot() 创建三个子图,分别用于绘制三个指数的年平均时间序列。
    • 使用 plt.plot() 绘制时间序列线。
    • 使用 plt.fill_between() 填充正(负)位项,分别使用红色(蓝色)。
    • 设置图标题、坐标轴标签和刻度。
    • 使用 plt.tight_layout() 调整子图间距。
    • 使用 plt.show() 显示图形。

注意:

  • 请确保您的数据文件格式正确,并且包含年份和三个指数列。
  • 您可能需要根据您的数据调整代码中的列名和条件。
  • 您可以根据需要自定义图形的样式和设置。

示例数据文件(data.csv):

年份,指数1,指数2,指数3
1850,0.5,1.2,-0.8
1851,0.8,-0.3,1.5
...
2020,1.2,-0.9,0.2

运行结果:

该代码将生成三个子图,分别显示三个指数的年平均时间序列变化。正(负)位项将分别用红色(蓝色)填充,对于 Nino3.4 指数 >1 (红色),<-1 (蓝色)。

Python 数据分析:计算并绘制三个指数的年平均时间序列图

原文地址: https://www.cveoy.top/t/topic/nF1F 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录