code: def test_custom_shapes():
      n = 26
      shapes = [rf"$\mathrm{{{x}}}$" for x in string.ascii_uppercase]
      theta = np.linspace(0, 2 * np.pi * (1 - 1 / n), n)
  
      data = pd.DataFrame(
          {
              "x": np.sin(theta),
              "y": np.cos(theta),
              "theta": theta,
          }
      )
  
      p = (
          ggplot(
              data,
              aes("x", "y", shape="factor(range(n))", color="theta"),
          )
          + geom_point(size=10, show_legend=False)
          + scale_shape_manual(shapes)
          + coord_equal()
      )
      assert p == "custom_shapes"
  
file_path: plotnine/tests/test_geom_point.py
imports: import string
  import numpy
  import pandas
  from plotnine import aes, coord_equal, geom_point, ggplot, guides, lims, scale_color_identity, scale_shape_manual
label_desc: Use image node_id 4 for calling a global function with example usage: test_custom_shapes() without return types