如何在Python中显示x轴上的时间(年)

时间:2018-03-23 18:22:48

标签: python netcdf

我有一个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()

我得到的图像不是我想要的图像。

enter image description here

时间序列线图,X轴为时间。

1 个答案:

答案 0 :(得分:-1)

正如@Robert Davy在评论中提到的那样,日期并没有很好地产生。一旦问题得到解决,我就可以使用您的代码片段。

enter image description here

如果您需要有关刻度定位和格式设置的更多信息,请查看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())