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

Reply via email to