code: def plot_student_results(student, scores_by_test, cohort_size):
      fig, ax1 = plt.subplots(figsize=(9, 7), layout="constrained")
      fig.canvas.manager.set_window_title("Eldorado K-8 Fitness Chart")
  
      ax1.set_title(student.name)
      ax1.set_xlabel(
          "Percentile Ranking Across {grade} Grade {gender}s\n"
          "Cohort Size: {cohort_size}".format(
              grade=to_ordinal(student.grade),
              gender=student.gender.title(),
              cohort_size=cohort_size,
          )
      )
  
      test_names = list(scores_by_test.keys())
      percentiles = [
          score.percentile for score in scores_by_test.values()
      ]
  
      rects = ax1.barh(
          test_names, percentiles, align="center", height=0.5
      )
      # Partition the percentile values to be able to draw large numbers in
      # white within the bar, and small numbers in black outside the bar.
      large_percentiles = [
          to_ordinal(p) if p > 40 else "" for p in percentiles
      ]
      small_percentiles = [
          to_ordinal(p) if p <= 40 else "" for p in percentiles
      ]
      ax1.bar_label(
          rects,
          small_percentiles,
          padding=5,
          color="black",
          fontweight="bold",
      )
      ax1.bar_label(
          rects,
          large_percentiles,
          padding=-32,
          color="white",
          fontweight="bold",
      )
  
      ax1.set_xlim([0, 100])
      ax1.set_xticks([0, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100])
      ax1.xaxis.grid(
          True, linestyle="--", which="major", color="grey", alpha=0.25
      )
      ax1.axvline(50, color="grey", alpha=0.25)  # median position
  
      # Set the right-hand Y-axis ticks and labels
      ax2 = ax1.twinx()
      # Set equal limits on both yaxis so that the ticks line up
      ax2.set_ylim(ax1.get_ylim())
      # Set the tick locations and labels
      ax2.set_yticks(
          np.arange(len(scores_by_test)),
          labels=[
              format_score(score) for score in scores_by_test.values()
          ],
      )
  
      ax2.set_ylabel("Test Scores")
  
imports: from collections import namedtuple
  import matplotlib.pyplot
  import numpy
label_desc: Use image node_id 3 for calling a global function with example usage: plot_student_results(student, scores_by_test, cohort_size) without return types