code: def _create_properties_layout(figsize=None, fig=None):
      """Create main figure and axes layout used by plot_ica_properties."""
      import matplotlib.pyplot as plt
  
      if fig is not None and figsize is not None:
          raise ValueError("Cannot specify both fig and figsize.")
      if figsize is None:
          figsize = [7.0, 6.0]
      if fig is None:
          fig = plt.figure(figsize=figsize, facecolor=[0.95] * 3)
  
      axes_params = (
          ("topomap", [0.08, 0.5, 0.3, 0.45]),
          ("image", [0.5, 0.6, 0.45, 0.35]),
          ("erp", [0.5, 0.5, 0.45, 0.1]),
          ("spectrum", [0.08, 0.1, 0.32, 0.3]),
          ("variance", [0.5, 0.1, 0.45, 0.25]),
      )
      axes = [
          fig.add_axes(loc, label=name) for name, loc in axes_params
      ]
  
      return fig, axes
  
imports: import warnings
  from functools import partial
  import numpy
  from scipy.stats import gaussian_kde
  from .._fiff.meas_info import create_info
  from .._fiff.pick import _picks_to_idx, pick_types
  from .._fiff.proj import _has_eeg_average_ref_proj
  from ..defaults import DEFAULTS, _handle_default
  from ..utils import _reject_data_segments, _validate_type, fill_doc, verbose
  from .epochs import plot_epochs_image
  from .evoked import _butterfly_on_button_press, _butterfly_onpick
  from .topomap import _plot_ica_topomap
  from .utils import _compute_scalings, _convert_psds, _get_cmap, _get_plot_ch_type, _handle_precompute, _make_event_color_dict, plt_show
label_desc: Use image node_id 2 for calling a global function with example usage: _create_properties_layout(figsize, fig) and returns: fig,  axes