Got a solution as below

p.setp(ax.xaxis.get_minorticklabels(), rotation=90 )
but still to understand how to get single letter from month name!

with best regards,
Sudheer




----- Original Message -----
> From: Sudheer Joseph <sudheer.jos...@yahoo.com>
> To: Eric Firing <efir...@hawaii.edu>; 
> "matplotlib-users@lists.sourceforge.net" 
> <matplotlib-users@lists.sourceforge.net>
> Cc: 
> Sent: Tuesday, 11 June 2013 9:46 AM
> Subject: Re: [Matplotlib-users] time axis format
> 
> 
> 
> 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
> 

------------------------------------------------------------------------------
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