class_docstr: Currently, the models implemented in PaddleSeg is mostly on CityScapes with resoulution 1024x512.
  Thus, this class is used to plot model's performance.All resolution is unified to `1024x512`.
  
  However: 
          1. Some models do not have `model.pdparams` yet,
          2. Some models already have `model.pdparams`, but its resolution is not equal to 1024x512.
  Thus, we set some status flags to note them. Please refer to the function `get_model_status()`.
  
  This class include several funcitons:
          get_model_names()
          get_model_status()
          set_detailed_info()
          do_plot()
  
  If needs, please modify them synchronously.
class_docstr_tok: ["Currently",",","the","models","implemented","in","PaddleSeg","is","mostly","on","CityScapes","with","resoulution","1024x512",".","Thus",",","this","class","is","used","to","plot","model","'s","performance.All","resolution","is","unified","to","`","1024x512","`",".","However",":","1",".","Some","models","do","not","have","`","model.pdparams","`","yet",",","2",".","Some","models","already","have","`","model.pdparams","`",",","but","its","resolution","is","not","equal","to","1024x512",".","Thus",",","we","set","some","status","flags","to","note","them",".","Please","refer","to","the","function","`","get_model_status","(",")","`",".","This","class","include","several","funcitons",":","get_model_names","(",")","get_model_status","(",")","set_detailed_info","(",")","do_plot","(",")","If","needs",",","please","modify","them","synchronously","."]
code: def do_plot(self, title, xlabel, model_infos):
      plt.title(title)
      plt.xlabel(xlabel)
      plt.ylabel("mIoU(%)")
  
      styles = [
          "Hr",
          "+r",
          "*r",
          "*g",
          "hg",
          "pg",
          "sg",
          "+g",
          "hc",
          "^c",
          "+c",
          "*c",
          "py",
          "*y",
          "+y",
          "pk",
          "+k",
          "Dk",
          "sk",
          "dm",
          "*m",
          "Dm",
          "hb",
          "pb",
          "Db",
          "+b",
          "sy",
          "Hy",
          "Dy",
          "^y",
      ]
      num_styles = len(styles)
  
      # random.shuffle(styles)
  
      infer_time = []
      mIoUs = []
      marks = []  # Related to the model that on the figure already.
      labels = []  # Model's name whose status is `Correct`.
  
      index = 0  # The index of the current using style.
  
      for model in model_infos:
          infer_time.append(model_infos[model][xlabel])
          mIoUs.append(model_infos[model]["mIoU"])
          (x,) = plt.plot(
              infer_time[index], mIoUs[index], styles[index]
          )
          marks.append(x)
          labels.append(model)
  
          index = (index + 1) % num_styles
  
      # Add some fonts.
      # if 'OCRNet' in model_infos:
      #         plt.text(55, 82.3,'OCRNet', fontdict={'size':11, 'color':'red'})
      # if 'BiseNetV2' in model_infos:
      #         plt.text(14, 74.5, 'BiseNetV2', fontdict={'size':11, 'color':'red'})
      # if 'DeepLabV3p' in model_infos:
      #         plt.text(60.1, 80.1, 'DeepLabV3p', fontdict={'size':11, 'color':'green'})
      # if 'PSPNet' in model_infos:
      #         plt.text(110, 79.8, 'PSPNet', fontdict={'size':11, 'color':'c'})
      # if 'DANet' in model_infos:
      #         plt.text(86.2, 79.6, 'DANet', fontdict={'size':11, 'color':'green'})
      # plt.text(12.889,82.54,'OCRNet',fontdict={'size':11,'color':'c'})
      # plt.text(31.365,78.13,'HarDNet',fontdict={'size':11,'color':'m'})
      # plt.text(35.986,81.49,'SFNet',fontdict={'size':11,'color':'green'})
  
      plt.legend(
          marks,
          labels,
          bbox_to_anchor=(1.05, 1),
          loc=2,
          borderaxespad=0,
      )
  
      plt.subplots_adjust(right=0.7)
      plt.grid(
          b=None,
          which="major",
          axis="both",
      )
  
      # Add a line on the figure. Could connect DeepLab series or UNet series.
      # plt.plot([29.1, 70, 90.3],[67.2, 81.4, 81.6], linewidth=1, color='orange')
  
      plt.show()
  
imports: import random
  import numpy
  from matplotlib import pyplot
label_desc: Use image node_id 2 for calling the ModelPerformance obj's underlying member method code with example usage: obj.do_plot(title, xlabel, model_infos) without return types