docstr: Draw information of field value distribution for numerical type to
  the report.
  
  Args:
      notes(str): Explain the block
      field_name (str): data field name
      field_distribution (:dict of :dict):
          -key: label_name
          -value: numeric statistics object
  
      force_no_log (bool): whether to change y-scale to logrithmic
                                       scale for a more balanced view
      x_limit (list:): whether x-axis only display the required percentile range.
                      If True, field_distribution should have a
                      key "x_limit" and value of [x_min, x_max].
      colors (list): the list of color code for rendering different class
code: def draw_numeric_field_distribution(
      self,
      notes: str,
      *,
      field_name: str,
      field_distribution: Dict[str, NumericalStats],
      force_no_log=False,
      x_limit=False,
      colors=None,
  ):
      """
      Draw information of field value distribution for numerical type to
      the report.
  
      Args:
          notes(str): Explain the block
          field_name (str): data field name
          field_distribution (:dict of :dict):
              -key: label_name
              -value: numeric statistics object
  
          force_no_log (bool): whether to change y-scale to logrithmic
                                           scale for a more balanced view
          x_limit (list:): whether x-axis only display the required percentile range.
                          If True, field_distribution should have a
                          key "x_limit" and value of [x_min, x_max].
          colors (list): the list of color code for rendering different class
      """
      from xai.graphs import graph_generator
  
      if colors is None:
          colors = ["#3498db", "#2ecc71", "#e74c3c"]
      # -- Draw Content --
      self.html.article[-1].items.append(
          self.html.add_paragraph(text=notes)
      )
      for idx, (label_name, num_stats) in enumerate(
          field_distribution.items()
      ):
          title = "Distribution for %s" % label_name
          self.html.article[-1].items.append(
              self.html.add_header(text=title, heading="h5")
          )
          figure_path = "%s/%s_%s_field_distribution.png" % (
              self.figure_path,
              field_name,
              label_name,
          )
          figure_path = graph_generator.KdeDistribution(
              figure_path=figure_path,
              data=num_stats,
              title=title,
              x_label=field_name,
              y_label="",
          ).draw(
              color=colors[idx % len(colors)],
              force_no_log=force_no_log,
              x_limit=x_limit,
          )
          table_header = ["Statistical Field", "Value"]
          table_values = list()
          table_values.append(
              ["Total valid count", "%d" % int(num_stats.total_count)]
          )
          table_values.append(["Min", "%d" % int(num_stats.min)])
          table_values.append(["Max", "%d" % int(num_stats.max)])
          table_values.append(["Mean", "%d" % int(num_stats.mean)])
          table_values.append(["Median", "%d" % int(num_stats.median)])
          table_values.append(
              ["Standard deviation", "%d" % int(num_stats.sd)]
          )
          table_values.append(
              ["NAN count", "%d" % int(num_stats.nan_count)]
          )
  
          self.html.article[-1].items.append(
              self.html.add_table_image_group(
                  header=table_header,
                  data=table_values,
                  src=figure_path,
                  alt=title,
              )
          )
  
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  import copy
  import os
  import tempfile
  import warnings
  import shutil
  from typing import Tuple, Dict, List
  import numpy
  from xai import MODE
  from xai.data.explorer import CategoricalStats, NumericalStats, TextStats, DatetimeStats
  from xai.formatter.contents import Header, Title, SectionTitle
  from xai.formatter.hypertext_markup.publisher import CustomHtml, Div
  from xai.formatter.report.section import OverviewSection, DetailSection
  from xai.formatter.writer import Writer
label_desc: Use image node_id 22 for calling the HtmlWriter obj's underlying member method code with example usage: obj.draw_numeric_field_distribution(notes) without return types