code: def plot_missing_matrix(
      config: Settings, notnull: Any, columns: List[str], nrows: int
  ) -> str:
      """Generate missing values matrix plot
  
      Args:
          config: report Settings object
          notnull: Missing data indicator matrix.
          columns: List of column names.
          nrows: Number of rows in the dataframe.
  
      Returns:
          The resulting missing values matrix encoded as a string.
      """
  
      missing_matrix(
          notnull=notnull,
          height=nrows,
          columns=columns,
          figsize=(10, 4),
          fontsize=get_font_size(columns) / 20 * 16,
          color=hex_to_rgb(config.html.style.primary_colors[0]),
          labels=config.plot.missing.force_labels,
      )
      plt.subplots_adjust(left=0.1, right=0.9, top=0.7, bottom=0.2)
      return plot_360_n0sc0pe(config)
  
file_path: ydata-profiling/src/ydata_profiling/visualisation/missing.py
imports: from typing import Any, List
  from matplotlib import pyplot
  from ydata_profiling.config import Settings
  from ydata_profiling.visualisation.context import manage_matplotlib_context
  from ydata_profiling.visualisation.plot import missing_bar, missing_heatmap, missing_matrix
  from ydata_profiling.visualisation.utils import hex_to_rgb, plot_360_n0sc0pe
label_desc: Use image node_id 2 for calling a global function with example usage: plot_missing_matrix(config, notnull, columns, nrows) and returns: plot_360_n0sc0pe