|
From: Sudheer J. <sud...@ya...> - 2013-06-11 08:30:22
|
Thank you very much Eric for your valuable suggestions and explanations, now I could follow what exactly was wrong with my way of doing it, I got the result correctly.
thanks a lot
with best regards,
Sudheer
----- Original Message -----
> From: Eric Firing <ef...@ha...>
> To: Sudheer Joseph <sud...@ya...>
> Cc: "mat...@li..." <mat...@li...>
> Sent: Tuesday, 11 June 2013 12:53 PM
> Subject: Re: [Matplotlib-users] time axis format
>
> 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 <ef...@ha...>
>>
>> To: mat...@li...
>>> 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 <pmh...@gm...>;
>>>> *To: * Sudheer Joseph <sud...@ya...>;
>>>> *Cc: * mat...@li...
>>>> <mat...@li...>;
>>>> *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
> <sud...@ya...
>>>> <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...@gm...
>>>> <javascript:return>;sud...@ya...
> <javascript:return>
>>>> Web- http://oppamthadathil.tripod.com
>>>>
> ***************************************************************
>>>>
>>>>
> ------------------------------------------------------------------------
>>>> *From:* Sudheer Joseph <sud...@ya...
>>>> <javascript:return>>
>>>> *To:* Paul Hobson <pmh...@gm...
> <javascript:return>>
>>>> *Cc:* "mat...@li...
>>>> <javascript:return>"
> <mat...@li...
>>>> <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...@gm...
>>>> <javascript:return>;sud...@ya...
> <javascript:return>
>>>> Web- http://oppamthadathil.tripod.com
>>>>
> ***************************************************************
>>>>
>>>>
> ------------------------------------------------------------------------
>>>> *From:* Paul Hobson <pmh...@gm...
> <javascript:return>>
>>>> *To:* Sudheer Joseph <sud...@ya...
>>>> <javascript:return>>
>>>> *Cc:* "mat...@li...
>>>> <javascript:return>"
> <mat...@li...
>>>> <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
>>>> <sud...@ya...
> <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
>>>> Mat...@li...
>>>> 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
>>> Mat...@li...
>>> https://lists.sourceforge.net/lists/listinfo/matplotlib-users
>>>
>>>
>>>
>
|