[SciPy-user] Plotting in matplotlib (was:What is missing in scipy to be a top notch environment for signal processing)

Johannes Loehnert a.u.r.e.l.i.a.n at gmx.net
Tue Nov 21 03:07:35 EST 2006


> I use scipy for signal analysis of engineering vibration measurements.
> Although I understand it is not strictly speaking part of scipy, the
> single, main, thing that stops the other guys here using it is the speed of
> plotting large time series datasets (100k-400k data points). Matlab
> plotting is incredibly quick! Matplotlib is great for many things, but
> seems to suffer for large datasets, especially where the signal covers a
> lot of the plot canvas (ie a thick, noisy line, not a thin line).

If you want to plot your data as little dots (i.e. single pixels), there is a 
trick which works extremely well. Set up an integer array of reasonable size 
(say, 800x800) and put 1's at the appropriate place in the array using fancy 
indexing. Then plot the whole array via imshow().

Of course you can make it more sophisticated, e.g. use an NxNx3 array 
representing RGB values. I wrote a nice class for this which also supports 
blending several pixels over each other and anti-aliasing pixels (slower), if 
you like I can post it here.

Johannes



More information about the SciPy-User mailing list