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

Reply via email to