code: def _get_psd_label_and_std(this_psd, dB, ica, num_std):
      """Handle setting up PSD for one component, for plot_ica_properties."""
      psd_ylabel = _convert_psds(
          this_psd,
          dB,
          estimate="auto",
          scaling=1.0,
          unit="AU",
          first_dim="epoch",
      )
      psds_mean = this_psd.mean(axis=0)
      diffs = this_psd - psds_mean
      # the distribution of power for each frequency bin is highly
      # skewed so we calculate std for values below and above average
      # separately - this is used for fill_between shade
      with warnings.catch_warnings():  # mean of empty slice
          warnings.simplefilter("ignore")
          spectrum_std = [
              [np.sqrt((d[d < 0] ** 2).mean(axis=0)) for d in diffs.T],
              [np.sqrt((d[d > 0] ** 2).mean(axis=0)) for d in diffs.T],
          ]
      spectrum_std = np.array(spectrum_std) * num_std
  
      return psd_ylabel, psds_mean, spectrum_std
  
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 4 for calling a global function with example usage: _get_psd_label_and_std(this_psd, dB, ica, num_std) and returns: psd_ylabel,  psds_mean,  spectrum_std