plotting_frontend.py
51 lines
| 1.2 KiB
| text/x-python
|
PythonLexer
Brian E Granger
|
r1337 | """An example of how to use IPython1 for plotting remote parallel data | |
The two files plotting_frontend.ipy and plotting_backend.py go together. | |||
To run this example, first start the IPython controller and 4 | |||
engines:: | |||
ipcluster -n 4 | |||
Then start ipython in pylab mode:: | |||
ipython -pylab | |||
Then a simple "run plotting_frontend.ipy" in IPython will run the | |||
example. When this is done, all the variables (such as number, downx, etc.) | |||
are available in IPython, so for example you can make additional plots. | |||
""" | |||
import numpy as N | |||
from pylab import * | |||
Brian E Granger
|
r1338 | from IPython.kernel import client | |
Brian E Granger
|
r1337 | ||
# Get an IPython1 client | |||
rc = client.MultiEngineClient() | |||
rc.get_ids() | |||
# Run the simulation on all the engines | |||
rc.run('plotting_backend.py') | |||
# Bring back the data | |||
number = rc.pull('number') | |||
d_number = rc.pull('d_number') | |||
downx = rc.gather('downx') | |||
downy = rc.gather('downy') | |||
downpx = rc.gather('downpx') | |||
downpy = rc.gather('downpy') | |||
print "number: ", sum(number) | |||
print "downsampled number: ", sum(d_number) | |||
# Make a scatter plot of the gathered data | |||
# These calls to matplotlib could be replaced by calls to pygist or | |||
# another plotting package. | |||
figure(1) | |||
scatter(downx, downy) | |||
xlabel('x') | |||
ylabel('y') | |||
figure(2) | |||
scatter(downpx, downpy) | |||
xlabel('px') | |||
ylabel('py') | |||
show() |