I am not exactly sure how to use datetime objects instead of strings.
This is the code I am working with at the moment and the code works except
for the dates, they are just weird numbers along the x-axis.
Any help will be greatly appreciated.
import numpy as np
import matplotlib.pyplot as plt
from numpy import ma as MA
from mpl_toolkits.basemap import Basemap
from datetime import datetime
import os
from osgeo import gdal, gdalnumeric, ogr, osr
import glob
from datetime import date, timedelta
import matplotlib.dates as mdates
import time
rainmax=[]
yearmonthlist=[]
yearmonth_int=[]
OutputFolder=r"E:/test_out/"
GLOBTEMPLATE = r"e:/Rainfall/rainfall-{year}/r{year}{month:02}??.txt"
def accumulate_month(year, month):
files = glob.glob(GLOBTEMPLATE.format(year=year, month=month))
monthlyrain=[]
monthlyrainaust=[]
for ifile in files:
f=np.genfromtxt(ifile,skip_header=6)
monthlyrain.append(f)
yearmonth=str(year)+str(month)
d=datetime.strptime(yearmonth, '%Y%m')
date_string=d.strftime('%Y%m')
yearmonthint=int(date_string)
yearmonth_int.append(yearmonthint)
yearmonthlist.append(yearmonth)
r_max=np.max(monthlyrain)
rainmax.append(r_max)
###loop through months and years
stop_month = datetime(2011, 04, 01)
month = datetime(2011, 01, 01)
while month < stop_month:
accumulate_month(month.year, month.month)
month += timedelta(days=32)
month = month.replace(day=01)
x=yearmonthlist
y=rainmax
x2=yearmonth_int
print x, y, x2
fig, ax=plt.subplots(1)
z=np.polyfit(x2,y,1)
p=np.poly1d(z)
plt.plot(x,y)
plt.plot(x,p(x2),'r--') #add trendline to plot
print "y=%.6fx+(%.6f)"%(z[0],z[1])
fig.autofmt_xdate()
ax.fmt_xdata=mdates.DateFormatter('%Y%m')
ax.xaxis.set_major_formatter(mdates.DateFormatter('%Y%m'))
plt.xlabel("year-month")
plt.ylabel("Precipitation (mm)")
plt.title("Max monthly Precipition")
plt.savefig(OutputFolder+"MaxMonthlyPrecip.png")
plt.show()
On Fri, Apr 13, 2012 at 2:31 AM, Goyo <goyod...@gmail.com> wrote:
> El día 12 de abril de 2012 03:46, questions anon
> <questions.a...@gmail.com> escribió:
>
> > I am not sure how to recognise that x-axis are dates like 20110101,
> > 20110102, 20110103 etc.
>
> Use datetime objects instead of strings.
>
> Goyo
>
------------------------------------------------------------------------------
Better than sec? Nothing is better than sec when it comes to
monitoring Big Data applications. Try Boundary one-second
resolution app monitoring today. Free.
http://p.sf.net/sfu/Boundary-dev2dev
_______________________________________________
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users