class_docstr: LR finder object. This object stores the results of lr_find().
  
  Args:
      mode: either `linear` or `exponential`, how to increase lr after each step
  
      lr_min: lr to start search from
  
      lr_max: lr to stop search
  
      num_training: number of steps to take between lr_min and lr_max
  
  Example::
      # Run lr finder
      lr_finder = trainer.lr_find(model)
  
      # Results stored in
      lr_finder.results
  
      # Plot using
      lr_finder.plot()
  
      # Get suggestion
      lr = lr_finder.suggestion()
docstr: Plot results from lr_find run
  Args:
      suggest: if True, will mark suggested lr to use with a red point
  
      show: if True, will show figure
  
      ax: Axes object to which the plot is to be drawn. If not provided, a new figure is created.
docstr_tok: ["Plot","results","from","lr_find","run","Args",":","suggest",":","if","True",",","will","mark","suggested","lr","to","use","with","a","red","point","show",":","if","True",",","will","show","figure","ax",":","Axes","object","to","which","the","plot","is","to","be","drawn",".","If","not","provided",",","a","new","figure","is","created","."]
code: def plot(
      self,
      suggest: bool = False,
      show: bool = False,
      ax: Optional["Axes"] = None,
  ) -> Optional["plt.Figure"]:
      """Plot results from lr_find run
      Args:
          suggest: if True, will mark suggested lr to use with a red point
  
          show: if True, will show figure
  
          ax: Axes object to which the plot is to be drawn. If not provided, a new figure is created.
      """
      if not _MATPLOTLIB_AVAILABLE:
          raise MisconfigurationException(
              "To use the `plot` method, you must have Matplotlib installed."
              " Install it by running `pip install -U matplotlib`."
          )
      import matplotlib.pyplot as plt
  
      lrs = self.results["lr"]
      losses = self.results["loss"]
  
      if ax is None:
          fig, ax = plt.subplots()
      else:
          fig = ax.figure  # type: ignore[assignment]
  
      # Plot loss as a function of the learning rate
      ax.plot(lrs, losses)
      if self.mode == "exponential":
          ax.set_xscale("log")
      ax.set_xlabel("Learning rate")
      ax.set_ylabel("Loss")
  
      if suggest:
          _ = self.suggestion()
          if self._optimal_idx:
              ax.plot(
                  lrs[self._optimal_idx],
                  losses[self._optimal_idx],
                  markersize=10,
                  marker="o",
                  color="red",
              )
  
      if show:
          plt.show()
  
      return fig
  
imports: import importlib
  import logging
  import os
  import uuid
  from copy import deepcopy
  from typing import TYPE_CHECKING, Any, Dict, List, Optional, Union, cast
  import torch
  from lightning_utilities.core.imports import RequirementCache
  from typing_extensions import override
  import lightning.pytorch
  from lightning.fabric.utilities.types import _TORCH_LRSCHEDULER
  from lightning.pytorch.callbacks import Callback
  from lightning.pytorch.utilities.exceptions import MisconfigurationException
  from lightning.pytorch.utilities.parsing import lightning_hasattr, lightning_setattr
  from lightning.pytorch.utilities.rank_zero import rank_zero_warn
  from lightning.pytorch.utilities.types import STEP_OUTPUT, LRScheduler, LRSchedulerConfig
label_desc: Use image node_id 3 for calling the _LRFinder obj's underlying member method code with example usage: obj.plot(suggest, show, ax) and returns: fig