Re: [Matplotlib-users] matplotlib.rcParams(update) and parallel python
Thank you for the tip. I actually had played around with matplotlib.rcdefaults() before, but that didn't work. I tried now the using exactly the clear_state function you suggested. Since it still didn't work, I finally found out that I had a very similar problem with another module from which I determine axes, figure size and other things. So, thank you very much, that helped me a lot and now things work the way I want! On Die 18 Okt 2011 04:45:27 CEST, John Hunter wrote: On Mon, Oct 17, 2011 at 2:57 PM, tinux hoffmann.mar...@gmail.com wrote: I have around 100 python files, that each create one figure using matplotlib. Since I want to use all CPU cores, I basically did for filename in files: execfile(filename) using a python script. However, this does not produce the same output as running each file separately (for instance axes, figure size are sometime wrong). I _think_ I narrowed it down to this: In all files I need to do matplotlib.rcParams(update). I guess that this influences the matplotlib rc parameters and thus somehow values from some figures are used for others. So, my question is, how can I do something like matplotlib.rcParams(update) so that it does not influence other scripts that are run in parallel using 'execfile'? Or, how do I set rc parameters for one specific script? BTW, I tried 'pp' and 'multiprocessing', same problem with both. The problem is that the rc params are module level in matplotlib so in a persistent process like ipython if one script modifies the rc params, subsequent files executed in the same process will be affected. You can restore the rc params to their default state by doing before each call to execfile import matplotlib matplotlib.rc_file_defaults() We face the same issue in the plot_directive which we use when building the matplotlib documentation. We define a function clear_state in https://github.com/matplotlib/matplotlib/blob/master/lib/matplotlib/sphinxext/plot_directive.py#L484 which closes all open figures, restore the rc defaults, and the updates the defaults to an rc dictionary of the parameters we want for each run. -- All the data continuously generated in your IT infrastructure contains a definitive record of customers, application performance, security threats, fraudulent activity and more. Splunk takes this data and makes sense of it. Business sense. IT sense. Common sense. http://p.sf.net/sfu/splunk-d2d-oct ___ Matplotlib-users mailing list Matplotlib-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/matplotlib-users
[Matplotlib-users] matplotlib.rcParams(update) and parallel python
I have around 100 python files, that each create one figure using matplotlib. Since I want to use all CPU cores, I basically did for filename in files: execfile(filename) using a python script. However, this does not produce the same output as running each file separately (for instance axes, figure size are sometime wrong). I _think_ I narrowed it down to this: In all files I need to do matplotlib.rcParams(update). I guess that this influences the matplotlib rc parameters and thus somehow values from some figures are used for others. So, my question is, how can I do something like matplotlib.rcParams(update) so that it does not influence other scripts that are run in parallel using 'execfile'? Or, how do I set rc parameters for one specific script? BTW, I tried 'pp' and 'multiprocessing', same problem with both. Any help is greatly appreciated! Cheers, Martin -- View this message in context: http://old.nabble.com/matplotlib.rcParams%28update%29-and-parallel-python-tp32669484p32669484.html Sent from the matplotlib - users mailing list archive at Nabble.com. -- All the data continuously generated in your IT infrastructure contains a definitive record of customers, application performance, security threats, fraudulent activity and more. Splunk takes this data and makes sense of it. Business sense. IT sense. Common sense. http://p.sf.net/sfu/splunk-d2d-oct ___ Matplotlib-users mailing list Matplotlib-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/matplotlib-users
Re: [Matplotlib-users] matplotlib.rcParams(update) and parallel python
On Mon, Oct 17, 2011 at 2:57 PM, tinux hoffmann.mar...@gmail.com wrote: I have around 100 python files, that each create one figure using matplotlib. Since I want to use all CPU cores, I basically did for filename in files: execfile(filename) using a python script. However, this does not produce the same output as running each file separately (for instance axes, figure size are sometime wrong). I _think_ I narrowed it down to this: In all files I need to do matplotlib.rcParams(update). I guess that this influences the matplotlib rc parameters and thus somehow values from some figures are used for others. So, my question is, how can I do something like matplotlib.rcParams(update) so that it does not influence other scripts that are run in parallel using 'execfile'? Or, how do I set rc parameters for one specific script? BTW, I tried 'pp' and 'multiprocessing', same problem with both. The problem is that the rc params are module level in matplotlib so in a persistent process like ipython if one script modifies the rc params, subsequent files executed in the same process will be affected. You can restore the rc params to their default state by doing before each call to execfile import matplotlib matplotlib.rc_file_defaults() We face the same issue in the plot_directive which we use when building the matplotlib documentation. We define a function clear_state in https://github.com/matplotlib/matplotlib/blob/master/lib/matplotlib/sphinxext/plot_directive.py#L484 which closes all open figures, restore the rc defaults, and the updates the defaults to an rc dictionary of the parameters we want for each run. -- All the data continuously generated in your IT infrastructure contains a definitive record of customers, application performance, security threats, fraudulent activity and more. Splunk takes this data and makes sense of it. Business sense. IT sense. Common sense. http://p.sf.net/sfu/splunk-d2d-oct ___ Matplotlib-users mailing list Matplotlib-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/matplotlib-users