# How to save plot\_sensors\_connectivity()?

**URL:** <https://mne.discourse.group/t/how-to-save-plot-sensors-connectivity/4958>\
**Category:** Support & Discussions\
**Tags:** visualization, connectivity\
**Created:** [May 27, 2022, 3:05pm UTC](https://mne.discourse.group/t/how-to-save-plot-sensors-connectivity/4958 "2022-05-27T15:05:23Z")\
**Posts on this page:** 12\
**Page:** 1

<div class="post-metadata">

**Author:** ![eveline](https://avatars.discourse-cdn.com/v4/letter/e/4491bb/32.png) [@eveline](https://mne.discourse.group/u/eveline)\
**Post date:** [May 27, 2022, 3:05pm UTC](https://mne.discourse.group/t/how-to-save-plot-sensors-connectivity/4958/1 "2022-05-27T15:05:24Z")

</div>

**plot\_sensors\_connectivity()**

Hi,

I have a question about plot\_sensors\_connectivity().

Can I save the figure somehow or/and make subplots? I don’t need 3D figure, so I just need jpg or png picture.

Thanks!

---

<div class="post-metadata">

**Author:** ![drammock](https://yyz2.discourse-cdn.com/free1/user_avatar/mne.discourse.group/drammock/32/4_2.png) [@drammock](https://mne.discourse.group/u/drammock)\
**Post date:** [May 27, 2022, 3:08pm UTC](https://mne.discourse.group/t/how-to-save-plot-sensors-connectivity/4958/2 "2022-05-27T15:08:54Z")

</div>

The function returns a Matplotlib figure instance. So something like

```python
from mne_connectivity.viz import plot_sensors_connectivity
fig = plot_sensors_connectivity(info, con, ...)
fig.set_size_inches(desired_width, desired_height)
fig.savefig('my_figure.png')

```

should work. If that doesn’t work, it’s a bug, please let us know.

---

<div class="post-metadata">

**Author:** ![eveline](https://avatars.discourse-cdn.com/v4/letter/e/4491bb/32.png) [@eveline](https://mne.discourse.group/u/eveline)\
**Post date:** [May 27, 2022, 3:14pm UTC](https://mne.discourse.group/t/how-to-save-plot-sensors-connectivity/4958/3 "2022-05-27T15:14:15Z")

</div>

Unfortunately it’s not working:

```python
---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
Input In [26], in <module>
----> 1 fig.savefig('my_figure.png')

AttributeError: 'PyVistaFigure' object has no attribute 'savefig'

```

---

<div class="post-metadata">

**Author:** ![richard](https://yyz2.discourse-cdn.com/free1/user_avatar/mne.discourse.group/richard/32/15_2.png) [@richard](https://mne.discourse.group/u/richard)\
**Post date:** [May 28, 2022, 7:58am UTC](https://mne.discourse.group/t/how-to-save-plot-sensors-connectivity/4958/4 "2022-05-28T07:58:09Z")

</div>

`plot_sensors_connectivity()` returns a 3D scene, so saving it to disk is a little bit more complicated. Here’s a fully reproducible working example:

```python
# %%

import mne
from mne_connectivity import spectral_connectivity_epochs
from mne.datasets import sample
from mne_connectivity.viz import plot_sensors_connectivity
import matplotlib.pyplot as plt

data_path = sample.data_path()
raw_fname = data_path / 'MEG/sample/sample_audvis_filt-0-40_raw.fif'
event_fname = data_path / 'MEG/sample/sample_audvis_filt-0-40_raw-eve.fif'

raw = mne.io.read_raw_fif(raw_fname)
raw.info['bads'] += ['MEG 2443']
picks = mne.pick_types(raw.info, meg='grad', eeg=False, stim=False, eog=True,
                       exclude='bads')

events = mne.read_events(event_fname)
event_id, tmin, tmax = 3, -0.2, 1.5 # need a long enough epoch for 5 cycles
epochs = mne.Epochs(raw, events, event_id, tmin, tmax, picks=picks,
                    baseline=(None, 0), reject=dict(grad=4000e-13, eog=150e-6))

fmin, fmax = 4., 9.
sfreq = raw.info['sfreq'] # the sampling frequency
tmin = 0.0 # exclude the baseline period
epochs.load_data().pick_types(meg='grad') # just keep MEG and no EOG now
con = spectral_connectivity_epochs(
    epochs, method='pli', mode='multitaper', sfreq=sfreq, fmin=fmin, fmax=fmax,
    faverage=True, tmin=tmin, mt_adaptive=False, n_jobs=1
)

# %%
# Do the actual plotting
connectivity_fig = plot_sensors_connectivity(
    epochs.info,
    con.get_data(output='dense')[:, :, 0]
)
# Take a screenshot of the 3D scene
screenshot = connectivity_fig.plotter.screenshot()

# The screenshot is just a NumPy array, so we can display it via imshow()
# and then save it to a file.
fig, ax = plt.subplots(figsize=(10, 10))
ax.imshow(screenshot, origin='upper')
ax.set_axis_off() # Disable axis labels and ticks
fig.tight_layout()
fig.savefig('connectivity.png', dpi=150)

```

 ![connectivity](https://global.discourse-cdn.com/free1/uploads/mne/original/2X/3/35f22634449400fcc57bba2b221f2ad02cb2828b.jpeg)

---

<div class="post-metadata">

**Author:** ![eveline](https://avatars.discourse-cdn.com/v4/letter/e/4491bb/32.png) [@eveline](https://mne.discourse.group/u/eveline)\
**Post date:** [May 28, 2022, 8:13pm UTC](https://mne.discourse.group/t/how-to-save-plot-sensors-connectivity/4958/5 "2022-05-28T20:13:16Z")

</div>

@richard, thank you very much!

---

<div class="post-metadata">

**Author:** ![AMumin](https://avatars.discourse-cdn.com/v4/letter/a/58956e/32.png) [@AMumin](https://mne.discourse.group/u/AMumin)\
**Post date:** [December 8, 2022, 10:18am UTC](https://mne.discourse.group/t/how-to-save-plot-sensors-connectivity/4958/6 "2022-12-08T10:18:27Z")

</div>

would it be possible to save the returned 3D scene as an interactive 3D pdf file?

---

<div class="post-metadata">

**Author:** ![richard](https://yyz2.discourse-cdn.com/free1/user_avatar/mne.discourse.group/richard/32/15_2.png) [@richard](https://mne.discourse.group/u/richard)\
**Post date:** [December 8, 2022, 10:37am UTC](https://mne.discourse.group/t/how-to-save-plot-sensors-connectivity/4958/7 "2022-12-08T10:37:36Z")

</div>

I’m afraid this is currently not possible, sorry.!

---

<div class="post-metadata">

**Author:** ![AMumin](https://avatars.discourse-cdn.com/v4/letter/a/58956e/32.png) [@AMumin](https://mne.discourse.group/u/AMumin)\
**Post date:** [December 8, 2022, 10:49am UTC](https://mne.discourse.group/t/how-to-save-plot-sensors-connectivity/4958/8 "2022-12-08T10:49:09Z")

</div>

Thank you for your reply.

Alternatively, it is possible to export the 3D scene as a glTF file ([export\_gltf — PyVista 0.37.0 documentation](https://docs.pyvista.org/api/plotting/_autosummary/pyvista.Plotter.export_gltf.html)) and view it with an online viewer ([https://gltf-viewer.donmccurdy.com/](https://gltf-viewer.donmccurdy.com/)).

---

<div class="post-metadata">

**Author:** ![codZeus](https://avatars.discourse-cdn.com/v4/letter/c/f1d935/32.png) [@codZeus](https://mne.discourse.group/u/codZeus)\
**Post date:** [January 13, 2024, 12:56am UTC](https://mne.discourse.group/t/how-to-save-plot-sensors-connectivity/4958/9 "2024-01-13T00:56:04Z")

</div>

how did you do this? Because I have been having errors all day

---

<div class="post-metadata">

**Author:** ![drammock](https://yyz2.discourse-cdn.com/free1/user_avatar/mne.discourse.group/drammock/32/4_2.png) [@drammock](https://mne.discourse.group/u/drammock)\
**Post date:** [January 14, 2024, 7:59pm UTC](https://mne.discourse.group/t/how-to-save-plot-sensors-connectivity/4958/10 "2024-01-14T19:59:12Z")

</div>

@codZeus please open a new issue, and provide code for a minimal, reproducible example, and the error (including full traceback) you encounter when running that example in a fresh python session.

---

<div class="post-metadata">

**Author:** ![codZeus](https://avatars.discourse-cdn.com/v4/letter/c/f1d935/32.png) [@codZeus](https://mne.discourse.group/u/codZeus)\
**Post date:** [January 14, 2024, 8:05pm UTC](https://mne.discourse.group/t/how-to-save-plot-sensors-connectivity/4958/11 "2024-01-14T20:05:26Z")

</div>

sure I will.

I asked a question about whitened evoked response and whitened GFP that hasn’t been answered. Do you mind helping me with that?

Thanks

---

<div class="post-metadata">

**Author:** ![drammock](https://yyz2.discourse-cdn.com/free1/user_avatar/mne.discourse.group/drammock/32/4_2.png) [@drammock](https://mne.discourse.group/u/drammock)\
**Post date:** [January 14, 2024, 8:09pm UTC](https://mne.discourse.group/t/how-to-save-plot-sensors-connectivity/4958/12 "2024-01-14T20:09:08Z")

</div>

> [@codZeus](#):
>
> I asked a question about whitened evoked response and whitened GFP that hasn’t been answered. Do you mind helping me with that?

there are lots of unanswered questions; I will get to it when I am able.
