Группировка дат по временным рядам оси X - PullRequest
0 голосов
/ 05 июня 2019

Я пытаюсь получить мои 421 последовательных дат (показанных по оси x), сгруппированных в один месяц.Таким образом, вместо того, чтобы маркировать Janarary в течение 31 дня, я бы хотел, чтобы именно эти 31 день были одним лейблом под названием «Январь / 2000» и т. Д. Для других месяцев.

Я бы включил изображение, но мне нужно больше повторений.Таким образом, ось Y - это широта, а ось X - каждый месяц как временной ряд.Любая помощь, пожалуйста?

import numpy as np
from netCDF4 import Dataset
from matplotlib.dates import date2num
from datetime import datetime, timedelta
from netCDF4 import num2date, date2num, date2index

### by defining the directory pathway ###
expname='xnsbi'
inpath = 'E://Data Files (NetCDF)/'+expname+'/Monthly_AOD/'

mnames=    ['0sep','0oct','0nov','0dec','1jan','1feb','1mar','1apr','1may','1jun','1jul', '1aug','1sep','1oct','1nov']

######################### Extracting the data for the plots 

### Looping the variables needed to be extracted for the different months ###
Dates = []
array = []
for name in mnames:
   infile= inpath+expname+'a_pd200'+name+'sAODtracersMDSJamesB.nc' # Complete 
#the pathway to loop all files # 
   vn=Dataset(infile)
   lon       = vn.variables['longitude'][:]
   lat      = vn.variables['latitude'][:]
   time      = vn.variables['t'][:]
   aod550 = vn.variables['aod'][:]

  ### Set the time and date of each plots ####
   t_unit="days since 2000-09-01T00:00:00Z"
   t_cal =  "360_day"
   dates =num2date(time,units=t_unit,calendar=t_cal)
   fmt = '%m/%Y'
   label = dates[0].strftime(fmt)
   print(label)
   ntime=len(time)

   Mlon = np.mean(aod550,axis=1)
   array.append(Mlon)
   fig = plt.figure(figsize=(15.745,15), edgecolor='w')

Здесь вы можете видеть, что есть 421 дней подряд.Это показывает на моей оси х 421 разных дат, (очень напряженно).

   sdate=str(label)
   Dates.append(sdate)
data = np.zeros((145,421))   # For the zonal mean
for i in range(421):
   data[:,i] = array[i]

######## Construct the plot 
cs = plt.contourf(Dates,lat,data,cmap='jet')
...