[Numpy-discussion] loading and filtering data for matplotlib

Resmi l.resmi at gmail.com
Tue Oct 26 10:57:43 EDT 2010


Hi
 I'm new to python. I'm trying to plot a data set in matplotlib.

 The data is a mixture of strings and floats, has four columns
(col[0],col[1],col[2],col[3]) and it looks like:

R       -2.29350   0.50340   0.480E-01
R       -2.25903   0.50740   0.480E-01
SU      -2.19457   0.16200   0.800E-01
SU      -2.13237   0.14600   0.800E-01

What I want to do is to plot the SU filtered entries alone as col[1]:col[2]

I wrote a script to read the data, how can I make x1 and SUx2 as
arrays? Right now matplotlib only plots the last value obviously. Or
is there a different/better way to slice just the SU entries and make
them as a separate array? My actual data file has many more entries
with more filters and I want to make a plot for each of the filters
with col[1]:col[2]

import pylab
import numpy
#Loading and reading data
data=numpy.loadtxt('file.dat',dtype=[('filt','S4'),('x1','f8'),('x2','f8'),('x3','f8')])
filt=data['filt']
for i in range(0,len(filt),1):
 if filt[i] == 'SU':
  x1=data['x1'][i]
  SUx2=data['x2'][i]
#print x1,SUx2
pylab.plot(x1,SUx2,'bs')
pylab.show()



More information about the NumPy-Discussion mailing list