On 2013/06/10 6:16 PM, Sudheer Joseph wrote: > > > Thank you Eric and CM, > I have the below piece of code and added the new definition for minorLocs, > but gets the below error. I believe I did not fully understand the concept > you mentioned. >
Try it again, please, exactly as I wrote it. > minorLocs = mdates.MonthLocator(bymonth=[1,3,5,7,9,11],bymonthday=15) Delete the following line: > minorFmt = mdates.DateFormatter('%b') > Restore the following to what I wrote; your change to the first line is wrong. > class MonthLetter(minorFmt): > def __init__(self): > DateFormatter.__init__(self, "%b") > def __call__(*args): > s = DateFormatter.__call__(*args) > return s[:1] > minorFmt = MonthLetter() > > > > > 531 def viewlim_to_dt(self): > --> 532 vmin, vmax = self.axis.get_view_interval() > 533 return num2date(vmin, self.tz), num2date(vmax, self.tz) > 534 > > AttributeError: 'NoneType' object has no attribute 'get_view_interva > > > > From: Eric Firing <efir...@hawaii.edu> > > To: matplotlib-users@lists.sourceforge.net >> Sent: Tuesday, 11 June 2013 6:11 AM >> Subject: Re: [Matplotlib-users] time axis format >> >> >> On 2013/06/10 2:08 PM, Sudheer Joseph wrote: >>> >>> Thank you, >>> So there is no way to get J F M A etc with out reducing font size? We >>> often need to make presentation in front of senior people who insist for >>> bigger fonts. >>> With best regards, >>> Sudheer >> >> One way is to subclass DateFormatter, e.g., >> >> class MonthLetter(DateFormatter): >> def __init__(self): >> DateFormatter.__init__(self, "%b") >> >> def __call__(*args): >> s = DateFormatter.__call__(*args) >> return s[:1] >> >> class MonthLetterYear(DateFormatter): >> def __init__(self): >> DateFormatter.__init__(self, "%b\n%Y") >> >> def __call__(*args): >> s = DateFormatter.__call__(*args) >> return = s[:1] + s[3:] >> >> ... >> >> majorFmt = MonthLetterYear() >> minorFmt = MonthLetter() >> >> >> Not tested, but something like that should work. >> >> Eric >> >> >>> >>> >>> ------------------------------------------------------------------------ >>> *From: * Paul Hobson <pmhob...@gmail.com>; >>> *To: * Sudheer Joseph <sudheer.jos...@yahoo.com>; >>> *Cc: * matplotlib-users@lists.sourceforge.net >>> <matplotlib-users@lists.sourceforge.net>; >>> *Subject: * Re: [Matplotlib-users] time axis format >>> *Sent: * Mon, Jun 10, 2013 8:08:18 PM >>> >>> In that case, I would use ax.tick_params(...) to make the font smaller. >>> >>> >>> On Sat, Jun 8, 2013 at 7:36 AM, Sudheer Joseph <sudheer.jos...@yahoo.com >>> <javascript:return>> wrote: >>> >>> Dear Paul, >>> The issue I am facing is like in the attached plot >>> where the month naming get cluttered. >>> with best regards, >>> Sudheer >>> *************************************************************** >>> Sudheer Joseph >>> Indian National Centre for Ocean Information Services >>> Ministry of Earth Sciences, Govt. of India >>> POST BOX NO: 21, IDA Jeedeemetla P.O. >>> Via Pragathi Nagar,Kukatpally, Hyderabad; Pin:5000 55 >>> Tel:+91-40-23886047(O),Fax:+91-40-23895011(O), >>> Tel:+91-40-23044600(R),Tel:+91-40-9440832534(Mobile) >>> E-mail:sjo.in...@gmail.com >>> <javascript:return>;sudheer.jos...@yahoo.com <javascript:return> >>> Web- http://oppamthadathil.tripod.com >>> *************************************************************** >>> >>> >>> ------------------------------------------------------------------------ >>> *From:* Sudheer Joseph <sudheer.jos...@yahoo.com >>> <javascript:return>> >>> *To:* Paul Hobson <pmhob...@gmail.com <javascript:return>> >>> *Cc:* "matplotlib-users@lists.sourceforge.net >>> <javascript:return>" <matplotlib-users@lists.sourceforge.net >>> <javascript:return>> >>> *Sent:* Saturday, 8 June 2013 7:46 PM >>> >>> *Subject:* Re: [Matplotlib-users] time axis format >>> >>> Thank you Paul for the helping hand, >>> However I was looking for >>> slightly different solution like in the attached plots. I used >>> ferret to do this based on the length of the time axis it chose >>> the mode of labelling. for example in case of 2 year plot it >>> made month labeling as j f m etc and in case of 1 year as there >>> is enough space on x axis it made jan feb etc with single label >>> of year. >>> >>> In the attached python plot (ATser_RAMA_HYCOM_U_8n90e.png) every >>> tick point is lablled for year, which I wanted to avoid and get >>> plots similar to the first types thought it is not done >>> automatically but at least manually. >>> >>> >>> *************************************************************** >>> Sudheer Joseph >>> Indian National Centre for Ocean Information Services >>> Ministry of Earth Sciences, Govt. of India >>> POST BOX NO: 21, IDA Jeedeemetla P.O. >>> Via Pragathi Nagar,Kukatpally, Hyderabad; Pin:5000 55 >>> Tel:+91-40-23886047(O),Fax:+91-40-23895011(O), >>> Tel:+91-40-23044600(R),Tel:+91-40-9440832534(Mobile) >>> E-mail:sjo.in...@gmail.com >>> <javascript:return>;sudheer.jos...@yahoo.com <javascript:return> >>> Web- http://oppamthadathil.tripod.com >>> *************************************************************** >>> >>> >>> ------------------------------------------------------------------------ >>> *From:* Paul Hobson <pmhob...@gmail.com <javascript:return>> >>> *To:* Sudheer Joseph <sudheer.jos...@yahoo.com >>> <javascript:return>> >>> *Cc:* "matplotlib-users@lists.sourceforge.net >>> <javascript:return>" <matplotlib-users@lists.sourceforge.net >>> <javascript:return>> >>> *Sent:* Friday, 7 June 2013 8:50 PM >>> *Subject:* Re: [Matplotlib-users] time axis format >>> >>> >>> >>> >>> On Thu, Jun 6, 2013 at 11:39 PM, Sudheer Joseph >>> <sudheer.jos...@yahoo.com <javascript:return>> wrote: >>> >>> Dear Experts, >>> I have been experimenting with the >>> plot_dates option of matplotlib to plot time series data >>> and have below questions >>> >>> I have used >>> loc = mdates.AutoDateLocator() >>> ax.xaxis.set_major_locator(loc) >>> ax.xaxis.set_major_formatter(mpl.dates.DateFormatter('%b\n >>> %Y')) >>> >>> >>> and got the tick labels in attached plot >>> >>> However I feel the repeatd year labeling is not needed >>> here and it is required once in a year only , Also if I >>> need to plot long time seris insted of "MAR" "APR" I >>> wanted to get them reduced to "M" "A" etc so that the >>> lavel congestion can be avoided. >>> >>> >>> I notice that below options are available, but was >>> wondering how commbinatins of these locateors are used >>> ie mark every month and every year once each. >>> >>> >>> Is there a way to achive the above or does it need >>> further development? >>> >>> fmt = mdates.DateFormatter('%Y-%m-%d') >>> loc = >>> mdates.WeekdayLocator(byweekday=mdates.MONDAY,interval=4) >>> locator = mdates.YearLocator() >>> >>> >>> If I were trying to do this, I'd cobble something together >>> using by the minor and major formatters. >>> e.g.,... >>> import matplotlib.dates as mdates >>> import matplotlib.pyplot as plt >>> >>> fig, ax = plt.subplots() >>> >>> majorLocs = mdates.MonthLocator(bymonth[1,7]) >>> majorFmt = mdates.DateFormatter('%b\n%Y') >>> >>> minorLocs = mdates.MonthLocator(bymonth[1,7]) >>> minorFmt = mdates.DateFormatter('%b') >>> >>> ax.xaxis.set_major_locator(majorLocs) >>> ax.xaxis.set_major_formatter(majorFmt) >>> >>> ax.xaxis.set_minor_locator(minorLocs) >>> ax.xaxis.set_minor_formatter(minorFmt) >>> >>> >>> >>> >>> >>> >>> >>> ------------------------------------------------------------------------------ >>> This SF.net email is sponsored by Windows: >>> >>> Build for Windows Store. >>> >>> http://p.sf.net/sfu/windows-dev2dev >>> >>> >>> >>> _______________________________________________ >>> Matplotlib-users mailing list >>> Matplotlib-users@lists.sourceforge.net >>> https://lists.sourceforge.net/lists/listinfo/matplotlib-users >>> >> >> >> ------------------------------------------------------------------------------ >> This SF.net email is sponsored by Windows: >> >> Build for Windows Store. >> >> http://p.sf.net/sfu/windows-dev2dev >> _______________________________________________ >> Matplotlib-users mailing list >> Matplotlib-users@lists.sourceforge.net >> https://lists.sourceforge.net/lists/listinfo/matplotlib-users >> >> >> ------------------------------------------------------------------------------ This SF.net email is sponsored by Windows: Build for Windows Store. http://p.sf.net/sfu/windows-dev2dev _______________________________________________ Matplotlib-users mailing list Matplotlib-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/matplotlib-users