hi all,
i am reading a set of tab-separated data from a file and i want to put it into an array, and then plot some of the columns. i know the number of columns ahead of time but not the number of rows. i load the array from the file as follows, which seems to work:
data = []
for line in myfile:
field1, field2, field3 = line.strip().split(’\t’)
data.append([int(field1), int(field2), int(field3)])
i then convert it into an array as follows:
data = array(data)
i am able to reference the first column as follows:
data[:,0]
but if i try to plot the first column against the second as follows:
bar(data[:,0],data[:,1])
then i get the error:
/usr/lib64/python2.5/site-packages/matplotlib/units.pyc in get_converter(self, x)
128 converter = self.get(classx)
129
–> 130 if converter is None and iterable(x):
131 # if this is anything but an object array, we’ll assume
132 # there are no custom units
[repeated many times]
RuntimeError: maximum recursion depth exceeded
WARNING: Failure executing file: <myfile.py>
how can i fix this? i’d like an n-by-m representation of my data as an array which i can reference like a matrix in matlab. some of the columns are floats, other are ints, and others are strings, so i prefer to load the data into an array as a loop where i can cast the strings appropriately, rather than use some built in io function for reading tab-separated data.
thank you very much.