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. 

minorLocs = mdates.MonthLocator(bymonth=[1,3,5,7,9,11],bymonthday=15)
minorFmt = mdates.DateFormatter('%b')

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

Reply via email to