code: def make_gt_area_group_numbers_plot(cocoEval, outDir, verbose=True):
      areaRngLbl2Number = get_gt_area_group_numbers(cocoEval)
      areaRngLbl = areaRngLbl2Number.keys()
      if verbose:
          print(
              "number of annotations per area group:", areaRngLbl2Number
          )
  
      # Init figure
      fig, ax = plt.subplots()
      x = np.arange(len(areaRngLbl))  # the areaNames locations
      width = 0.60  # the width of the bars
      figure_title = "number of annotations per area group"
  
      rects = ax.bar(x, areaRngLbl2Number.values(), width)
  
      # Add some text for labels, title and custom x-axis tick labels, etc.
      ax.set_ylabel("Number of annotations")
      ax.set_title(figure_title)
      ax.set_xticks(x)
      ax.set_xticklabels(areaRngLbl)
  
      # Add score texts over bars
      autolabel(ax, rects)
  
      # Save plot
      fig.tight_layout()
      fig.savefig(outDir + f"/{figure_title}.png")
      plt.close(fig)
  
file_path: mmdetection/tools/analysis_tools/coco_error_analysis.py
imports: import copy
  import os
  from argparse import ArgumentParser
  from multiprocessing import Pool
  import matplotlib.pyplot
  import numpy
  from pycocotools.coco import COCO
  from pycocotools.cocoeval import COCOeval
label_desc: Use image node_id 5 for calling a global function with example usage: make_gt_area_group_numbers_plot(cocoEval, outDir, verbose) without return types