Thank you very much Eric for your valuable suggestions and explanations, now I could follow what exactly was wrong with my way of doing it, I got the result correctly. thanks a lot with best regards, Sudheer
----- Original Message ----- > From: Eric Firing <efir...@hawaii.edu> > To: Sudheer Joseph <sudheer.jos...@yahoo.com> > Cc: "matplotlib-users@lists.sourceforge.net" > <matplotlib-users@lists.sourceforge.net> > Sent: Tuesday, 11 June 2013 12:53 PM > Subject: Re: [Matplotlib-users] time axis format > > 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