From: Gökhan S. <gok...@gm...> - 2012-07-04 17:17:45
|
Hello, I am working on creating some distribution plots to analyze cloud droplet and drop features. You can see one such plot at http://atmos.uwyo.edu/~gsever/data/rf06_1second/rf06_belowcloud_SurfaceArea_1second.pdf This file contains 38 pages and each page has 16 panels created via MPL's AxesGrid toolkit. I am using PdfPages from pdf backend profile to construct this multi-page plot. The original code that is used to create this plot is in http://code.google.com/p/ccnworks/source/browse/trunk/parcel_drizzle/rf06_moments.py The problem I am reporting is due to the lengthier plot creation times. It takes about 4 minutes to create such plot in my laptop. To better demonstrate the issue I created a sample script which you can use to reproduce my timing results --well based on pseudo/random data points. All my data points in the original script are float64 so I use float64 in the sample script as well. The script is at http://atmos.uwyo.edu/~gsever/data/matplotlib/test_speed.pyI also included 2 pages output running the script with nums=2 setting http://atmos.uwyo.edu/~gsever/data/matplotlib/test_speed.pdf Comparing my original output, indeed cloud particles are not from a normal distribution :) Joke aside, running with nums=2 for 2 pages time run test_speed.py CPU times: user 12.39 s, sys: 0.10 s, total: 12.49 s Wall time: 12.84 s when nums=38, just like my original script, then I get similar timing to my original run time run test.py CPU times: user 227.39 s, sys: 1.74 s, total: 229.13 s Wall time: 234.87 s In addition to these longer plot creation times, 38 pages plot creation consumes about 3 GB memory. I am wondering if there are tricks to improve plot creation times as well as more efficiently using the memory. Attempting to create two such distributions blocks my machine eating 6 GB of ram space. Using Python 2.7, NumPy 2.0.0.dev-7e202a2, IPython 0.13.beta1, matplotlib 1.1.1rc on Fedora 16 (x86_64) Thanks. -- Gökhan |