On 06/18/2010 07:31 AM, Ryan May wrote:
> On Thu, Jun 17, 2010 at 11:39 AM, Bill Eaton<e...@aeroantenna.com>  wrote:
>> I'm struggling to figure out how to format my data so that I can use dates
>> as x-data.
> <SNIP>
>> I tried to import my own data. It looks like
>>    2005-03-04,0.923115796
>>    2005-03-05,0.915828724
>>    2005-03-06,0.442521474
>>    2005-03-07,0.997096213
>>    2005-03-08,0.867752118


Try matplotlib's mlab.csv2rec.  It has a lot of magic built-in, 
including automatic date recognition.

Eric


>> And to import, I use recarray
>>   myarray = np.loadtxt(fullfile, dtype=[('date', '|O4'), ('ydata',
>> 'float')], delimiter = ',')
>>   rx = myarray.view(np.recarray)
>>
>> Data imports fine. But when I go to plot, I get the following error
>>   ValueError: setting an array element with a sequence.
>>   WARNING: Failure executing file:<bogus.py>
>
> You need to give np.loadtxt a converter so that it converts that first
> column of strings into datetime objects:
>
> import numpy as np
> import matplotlib.pyplot as plt
> from matplotlib import dates
> from datetime import datetime
> from StringIO import StringIO
>
> s='''
>    2005-03-04,0.923115796
>    2005-03-05,0.915828724
>    2005-03-06,0.442521474
>    2005-03-07,0.997096213
>    2005-03-08,0.867752118'''
>
> dateparser = lambda s: datetime.strptime(s, '%Y-%m-%d')
> dt = np.dtype([('date', np.object),('ydata', np.float)])
> d = np.loadtxt(StringIO(s), dtype=dt, converters={0:dateparser}, 
> delimiter=',')
> plt.plot(d['date'], d['ydata'])
> plt.gca().xaxis.set_major_locator(dates.DayLocator())
> plt.gca().xaxis.set_major_formatter(dates.DateFormatter('%Y/%m/%d'))
> plt.show()
>
> Personally, I find it much easier to work with python datetime objects
> than any other form. You can
>
> Ryan
>


------------------------------------------------------------------------------
ThinkGeek and WIRED's GeekDad team up for the Ultimate 
GeekDad Father's Day Giveaway. ONE MASSIVE PRIZE to the 
lucky parental unit.  See the prize list and enter to win: 
http://p.sf.net/sfu/thinkgeek-promo
_______________________________________________
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users

Reply via email to