[SciPy-User] pylab
Joshua Holbrook
josh.holbrook at gmail.com
Mon Jul 19 19:24:28 EDT 2010
2010/7/19 பழநி சே <palaniappan.chetty at gmail.com>:
> hi,
> I have a question about pylab/matplotlib, I am interested in plots and
> I want to know if I can have some data points in a data sets missing
> but still create a plot using pylab? For example (assuming all modules
> have been imported)
>
>>x = [1,2,3,4]
>>y=[10,20,30,40]
>>pylab.plot(x,y)
>>pylab.show()
>
> works fine. But what if I have one or more data points missing in my y
> data set? like this
>
>>x = [1,2,3,4]
>>y=[10,20, ,40]
>>pylab.plot(x,y)
>>pylab.show()
> I know that I cannot have an empty element in my list and this does not work
>
> Thanks
> --
> Palani
> _______________________________________________
> SciPy-User mailing list
> SciPy-User at scipy.org
> http://mail.scipy.org/mailman/listinfo/scipy-user
>
Hey Palani,
I'm not extremely familiar with matplotlib, but my experience tells me
that, while MPL itself wouldn't really have any nice way to do this,
that you could import a dataset and use python/numpy to clean it up.
For example, you could maybe use filter() and zip() (zip's my
favorite toy), maybe like this:
In [30]: x
Out[30]: [0, 1, 2, 3, 4]
In [31]: y
Out[31]: [0, 1, 4, None, 16]
In [32]: zip(*filter(lambda x: x[1] != None, zip(x,y)))
Out[32]: [(0, 1, 2, 4), (0, 1, 4, 16)]
and then you could do plot(_[0],_[1]). Alternately, and this would
probably be worth investigating for bigger datasets, you could maybe
use masked arrays
(http://docs.scipy.org/doc/numpy/reference/maskedarray.baseclass.html)
to do something similar in spirit.
Hope that helped!
--Josh
More information about the SciPy-User
mailing list