I just added support for native plotting of python date and datetime objects (you still can, but don't have to use plot_date with date2num conversions). We will continue to do conversion to floats under the hood, but the conversion can be handled automagically. I also added support for loading CSV files (or general space/tab/comma delimited files) into numpy record arrays, and the type conversions (int, float, date, etc...) happen automagically. The function assumes there is a header row, and these strings will be munged to give valid python attribute names. It inspects the first checkrows lines after the header to try and infer the datatype and set the appropriate conversion function. It's not entirely bullet proof, but it should cover a lot of common use cases.
Here is an example (svn only) from matplotlib.mlab import csv2rec from pylab import figure, show a = csv2rec('data/msft.csv') fig = figure() ax = fig.add_subplot(111) ax.plot(a.date, a.adj_close, '-') fig.autofmt_xdate() show() The autofmt_xdate is optional, but is a new function that does a few things you usually want in date plots: turns off tick labels in the upper subplots if any, rotates the tick labels on the lowest axes and right aligns them, and increases the bottom of the subplots adjust to make room for the rotated tick labels. Here is what the dtype looks like from the example above. In [3]: !head -3 data/msft.csv Date,Open,High,Low,Close,Volume,Adj. Close* 19-Sep-03,29.76,29.97,29.52,29.96,92433800,29.79 18-Sep-03,28.49,29.51,28.42,29.50,67268096,29.34 In [4]: a = csv2rec('data/msft.csv') In [5]: a.dtype Out[5]: dtype([('date', '|O4'), ('open', '<f8'), ('high', '<f8'), ('low', '<f8'), ('close', '<f8'), ('volume', '<i4'), ('adj_close', '<f8')]) In [6]: a.date[:2] Out[6]: array([2003-09-19 00:00:00, 2003-09-18 00:00:00], dtype=object) I'll probably add a few performance features to the csv2rec function, mainly to let you skip columns and supply conversion functions where desired because the autodate parser is pretty slow if you want to parse date strings, but this is enough to make it useful. Another useful feature will be able to support customizable type dependent NULL value conversion (eg convert to numpy.nan for floats, '0000-00-00' for dates, etc...) Record arrays are your friend; have fun! JDH ------------------------------------------------------------------------- This SF.net email is sponsored by DB2 Express Download DB2 Express C - the FREE version of DB2 express and take control of your XML. No limits. Just data. Click to get it now. http://sourceforge.net/powerbar/db2/ _______________________________________________ Matplotlib-users mailing list Matplotlib-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/matplotlib-users