"""Functions to plot on circle as for connectivity."""
# Authors: Adam Li <adam2392@gmail.com>
# Alex Rockhill <aprockhill@mailbox.org>
#
# License: Simplified BSD
from mne.viz.circle import _plot_connectivity_circle
[docs]
def plot_connectivity_circle(
con,
node_names,
indices=None,
n_lines=None,
node_angles=None,
node_width=None,
node_height=1.0,
node_colors=None,
facecolor="black",
textcolor="white",
node_edgecolor="black",
linewidth=1.5,
colormap="hot",
vmin=None,
vmax=None,
colorbar=True,
title=None,
colorbar_size=0.2,
colorbar_pos=(-0.3, 0.1),
fontsize_title=12,
fontsize_names=8,
fontsize_colorbar=8,
padding=6.0,
ax=None,
interactive=True,
node_linewidth=2.0,
show=True,
):
"""Visualize connectivity as a circular graph.
Parameters
----------
con : array | Connectivity
Connectivity scores. Can be a square matrix, or a 1D array. If a 1D array is
provided, ``indices`` has to be used to define the connection indices.
node_names : list of str
Node names. The order corresponds to the order in ``con``.
indices : tuple of array_like | None
Two arrays with indices of connections for which the connections strengths are
defined in ``con``. Only needed if ``con`` is a 1D array.
n_lines : int | None
If not ``None``, only the ``n_lines`` strongest connections
(``strength=abs(con)``) are drawn.
node_angles : array, shape (n_node_names,) | None
Array with node positions in degrees. If ``None``, the nodes are equally spaced
on the circle. See :func:`mne.viz.circular_layout`.
node_width : float | None
Width of each node in degrees. If ``None``, the minimum angle between any two
nodes is used as the width.
node_height : float
The relative height of the colored bar labeling each node. Default 1.0 is the
standard height.
node_colors : list of tuple | list of str
List with the color to use for each node. If fewer colors than nodes are
provided, the colors will be repeated. Any color supported by matplotlib can be
used, e.g., RGBA tuples, named colors.
facecolor : str
Color to use for background. See :mod:`matplotlib.colors`.
textcolor : str
Color to use for text. See :mod:`matplotlib.colors`.
node_edgecolor : str
Color to use for lines around nodes. See :mod:`matplotlib.colors`.
linewidth : float
Line width to use for connections.
colormap : str | instance of matplotlib.colors.LinearSegmentedColormap
Colormap to use for coloring the connections.
vmin : float | None
Minimum value for colormap. If ``None``, it is determined automatically.
vmax : float | None
Maximum value for colormap. If ``None``, it is determined automatically.
colorbar : bool
Display a colorbar or not.
title : str
The figure title.
colorbar_size : float
Size of the colorbar.
colorbar_pos : tuple, shape (2,)
Position of the colorbar.
fontsize_title : int
Font size to use for title.
fontsize_names : int
Font size to use for node names.
fontsize_colorbar : int
Font size to use for colorbar.
padding : float
Space to add around figure to accommodate long labels.
ax : instance of matplotlib.projections.polar.PolarAxes | None
The axes to use to plot the connectivity circle.
interactive : bool
When enabled, left-click on a node to show only connections to that node.
Right-click shows all connections.
node_linewidth : float
Line width for nodes.
show : bool
Show figure if ``True``.
Returns
-------
fig : instance of matplotlib.figure.Figure
The figure handle.
ax : instance of matplotlib.projections.polar.PolarAxes
The subplot handle.
Notes
-----
This code is based on a circle graph example by Nicolas P. Rougier.
By default, :func:`matplotlib.pyplot.savefig` does not take ``facecolor`` into
account when saving, even if set when a figure is generated. This can be addressed
via, e.g.::
>>> fig.savefig(fname_fig, facecolor='black') # doctest:+SKIP
If ``facecolor`` is not set via :func:`matplotlib.pyplot.savefig`, the figure
labels, title, and legend may be cut off in the output figure.
"""
from mne_connectivity.base import BaseConnectivity
if isinstance(con, BaseConnectivity):
con = con.get_data()
return _plot_connectivity_circle(
con=con,
node_names=node_names,
indices=indices,
n_lines=n_lines,
node_angles=node_angles,
node_width=node_width,
node_height=node_height,
node_colors=node_colors,
facecolor=facecolor,
textcolor=textcolor,
node_edgecolor=node_edgecolor,
linewidth=linewidth,
colormap=colormap,
vmin=vmin,
vmax=vmax,
colorbar=colorbar,
title=title,
colorbar_size=colorbar_size,
colorbar_pos=colorbar_pos,
fontsize_title=fontsize_title,
fontsize_names=fontsize_names,
fontsize_colorbar=fontsize_colorbar,
padding=padding,
ax=ax,
interactive=interactive,
node_linewidth=node_linewidth,
show=show,
)