【发布时间】:2018-09-02 12:18:57
【问题描述】:
我有一个 NetCDF 数据,其一维随时间变化 1000 年(从 850 年到 1849 年的 1 年间隔)。我正在绘制一个时间序列,我只想在 X 轴上显示年份(850 到 1849)。我使用了以下脚本,但它不起作用。
import netCDF4 as netcdf
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.dates as mdates
import datetime
nc = netcdf.Dataset('tas_850-1849.nc')
time = nc.variables['time']
lat = nc.variables['lat'][:]
lon = nc.variables['lon'][:]
var = nc.variables['pdo'][:]
start = datetime.date(850,01,01)
dates = [start + datetime.timedelta(n) for n in range(len(var))]
plt.plot(dates, var[:,0,0], color='red', linewidth=2, label='Data1')
plt.show()
我得到以下图像,这不是我想要的方式。
以时间为 X 轴的时间序列线图。
【问题讨论】:
-
您的代码中有一个问题:
dates在每天的时间步长上都在增加。你可以使用dates = [datetime.date(850+n,1,1) for n in range(len(var))]之类的东西。 -
现在它正在使用您建议的脚本。但是,如何处理这里的刻度线。刻度线显示从 801 到 1801,有 200 个间隔,值从 850 到 1850 正确定位。绘图是正确的,但我需要 X 轴刻度从 850 到 1850 而不是 801-1801。