我有一个NetCDF数据,其中一个维度随时间变化1000年(1年间隔从850到1849年)。我正在绘制一个时间序列,我想在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轴为时间。
答案 0 :(得分:-1)
正如@Robert Davy在评论中提到的那样,日期并没有很好地产生。一旦问题得到解决,我就可以使用您的代码片段。
如果您需要有关刻度定位和格式设置的更多信息,请查看this。
<强> EDITED 强>
根据this,我会尝试:
import matplotlib.dates as mdates
plt.plot(dates, var[:,0,0], color='red', linewidth=2, label='Data1')
plt.gca().xaxis.set_major_formatter(mdates.DateFormatter('%Y'))
plt.gca().xaxis.set_major_locator(mdates.DayLocator())