[Mne_analysis] How to save figures in a loop without displaying them?
Denis-Alexander Engemann
denis.engemann at gmail.com
Sat Aug 16 14:27:46 EDT 2014
Hi Maria,
just use ```plt.close('all')```.
I would recommend to add the following two lines at the top of your script :
import matplotlib
matplotlib.use('Agg')
This will invoke matplotibs silent mode in which the figures are produced
but not shown.
With this addition you have to start ipython without --pylab flag because
the backend has to be set first.
HTH,
Denis
On Sat, Aug 16, 2014 at 8:20 PM, Maria Hakonen <maria.hakonen at gmail.com>
wrote:
> Hi all,
>
> I would like to remove eog artifacts from several files in a loop using
> ica and save some plots of the ica results without displaying them while
> the loop is running. I have tried this as follows:
>
> subjects = ['av','li','kk','mh','ml']
> for s in range(0,5):
> sessions = ['_s1','_s2','_s3']
> for x in range(0, 3):
> ...
>
> fig = ica.plot_scores(scores, exclude=eog_inds)
> file_end= 'scores.png'
> filename = subjects[s]+sessions[x]+file_end
> plt.savefig(filename)
> plt.close(fig)
>
> fig=ica.plot_sources(epochs_bp,eog_inds)
> file_end = 'sources.png'
> filename = subjects[s]+sessions[x]+file_end
> plt.savefig(filename)
> plt.close(fig)
>
> fig=ica.plot_components(eog_inds, colorbar=True)
> file_end = 'components.png'
> filename = subjects[s]+sessions[x]+file_end
> plt.savefig(filename)
> plt.close(fig)
> ica.exclude += eog_inds[:1]
> ...
>
> However, I get errors pasted below. They seem to come from plt.close(fig).
> Could somebody please let me know what I am doing wrong. Thanks already in
> advance!
>
> RuntimeError Traceback (most recent call last)
> /usr/lib/pymodules/python2.7/matplotlib/backends/backend_qt4.pyc in
> <lambda>()
> 149 # self.close_event)
>
> 150 QtCore.QObject.connect(self, QtCore.SIGNAL('destroyed()'),
> --> 151 lambda: self.close_event())
> 152
> 153 def __timerEvent(self, event):
>
> /usr/lib/pymodules/python2.7/matplotlib/backend_bases.pyc in
> close_event(self, guiEvent)
> 1562 try:
> 1563 event = CloseEvent(s, self, guiEvent=guiEvent)
> -> 1564 self.callbacks.process(s, event)
> 1565 except TypeError:
> 1566 pass
>
> RuntimeError: underlying C/C++ object has been deleted
>
> Best Regards,
> Maria
>
>
>
> _______________________________________________
> Mne_analysis mailing list
> Mne_analysis at nmr.mgh.harvard.edu
> https://mail.nmr.mgh.harvard.edu/mailman/listinfo/mne_analysis
>
>
> The information in this e-mail is intended only for the person to whom it
> is
> addressed. If you believe this e-mail was sent to you in error and the
> e-mail
> contains patient information, please contact the Partners Compliance
> HelpLine at
> http://www.partners.org/complianceline . If the e-mail was sent to you in
> error
> but does not contain patient information, please contact the sender and
> properly
> dispose of the e-mail.
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.nmr.mgh.harvard.edu/pipermail/mne_analysis/attachments/20140816/adb8ae2a/attachment.html
More information about the Mne_analysis
mailing list