code: def unique_markers(n):
      """Build an arbitrarily long list of unique marker styles for points.
  
      Parameters
      ----------
      n : int
          Number of unique marker specs to generate.
  
      Returns
      -------
      markers : list of string or tuples
          Values for defining :class:`matplotlib.markers.MarkerStyle` objects.
          All markers will be filled.
  
      """
      # Start with marker specs that are well distinguishable
      markers = [
          "o",
          "X",
          (4, 0, 45),
          "P",
          (4, 0, 0),
          (4, 1, 0),
          "^",
          (4, 1, 45),
          "v",
      ]
  
      # Now generate more from regular polygons of increasing order
      s = 5
      while len(markers) < n:
          a = 360 / (s + 1) / 2
          markers.extend(
              [
                  (s + 1, 1, a),
                  (s + 1, 0, a),
                  (s, 1, 0),
                  (s, 0, 0),
              ]
          )
          s += 1
  
      # Convert to MarkerStyle object, using only exactly what we need
      # markers = [mpl.markers.MarkerStyle(m) for m in markers[:n]]
  
      return markers[:n]
  
imports: from __future__ import annotations
  import warnings
  import itertools
  from copy import copy
  from collections import UserString
  from collections.abc import Iterable, Sequence, Mapping
  from numbers import Number
  from datetime import datetime
  import numpy
  import pandas
  import matplotlib
  from seaborn._core.data import PlotData
  from seaborn.palettes import QUAL_PALETTES, color_palette
  from seaborn.utils import _check_argument, _version_predates, desaturate, locator_to_legend_entries, get_color_cycle, remove_na
label_desc: Use image node_id 4 for calling a global function with example usage: unique_markers(n) and returns: markers