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 <[email protected]>
>
> To: [email protected]
>> 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 <[email protected]>;
>>> *To: * Sudheer Joseph <[email protected]>;
>>> *Cc: * [email protected]
>>> <[email protected]>;
>>> *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 <[email protected]
>>> <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:[email protected]
>>> <javascript:return>;[email protected] <javascript:return>
>>> Web- http://oppamthadathil.tripod.com
>>> ***************************************************************
>>>
>>>
>>> ------------------------------------------------------------------------
>>> *From:* Sudheer Joseph <[email protected]
>>> <javascript:return>>
>>> *To:* Paul Hobson <[email protected] <javascript:return>>
>>> *Cc:* "[email protected]
>>> <javascript:return>" <[email protected]
>>> <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:[email protected]
>>> <javascript:return>;[email protected] <javascript:return>
>>> Web- http://oppamthadathil.tripod.com
>>> ***************************************************************
>>>
>>>
>>> ------------------------------------------------------------------------
>>> *From:* Paul Hobson <[email protected] <javascript:return>>
>>> *To:* Sudheer Joseph <[email protected]
>>> <javascript:return>>
>>> *Cc:* "[email protected]
>>> <javascript:return>" <[email protected]
>>> <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
>>> <[email protected] <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
>>> [email protected]
>>> 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
>> [email protected]
>> 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
[email protected]
https://lists.sourceforge.net/lists/listinfo/matplotlib-users