code: def plot_single_iter(learner_names, metric_name, model_path, colors):
      plt.figure(figsize=(10, 7))
      for ln in learner_names:
          df = pd.read_csv(
              os.path.join(model_path, f"{ln}_training.log"),
              names=["iteration", "train", "test"],
          )
  
          fold, repeat = learner_name_to_fold_repeat(ln)
          repeat_str = (
              f" Reapeat {repeat+1}," if repeat is not None else ""
          )
          plt.bar(
              f"Fold {fold+1},{repeat_str} train",
              df.train[0],
              color="white",
              edgecolor=colors[fold],
          )
          plt.bar(
              f"Fold {fold+1},{repeat_str} test",
              df.test[0],
              color=colors[fold],
          )
  
      plt.ylabel(metric_name)
      plt.xticks(rotation=90)
      plt.tight_layout(pad=2.0)
      plot_path = os.path.join(
          model_path, LearningCurves.output_file_name
      )
      plt.savefig(plot_path)
      plt.close("all")
  
file_path: mljar-supervised/supervised/utils/learning_curves.py
imports: import logging
  import os
  import numpy
  import pandas
  from supervised.utils.common import learner_name_to_fold_repeat
  from supervised.utils.config import LOG_LEVEL
  from supervised.utils.metric import Metric
  import matplotlib.colors
  import matplotlib.pyplot
label_desc: Use image node_id 3 for calling the LearningCurves obj's underlying member method code with example usage: obj.plot_single_iter(learner_names, metric_name, model_path, colors) without return types