code: def report_html_periodic_table(logger, iteration=0):
      # type: (Logger, int) -> ()
      """
      reporting interactive (html) of periodic table to debug samples section
      :param logger: The task.logger to use for sending the plots
      :param iteration: The iteration number of the current reports
      """
      output_file("periodic.html")
      periods = ["I", "II", "III", "IV", "V", "VI", "VII"]
      groups = [str(x) for x in range(1, 19)]
      autompg_clean = elements.copy()
      autompg_clean["atomic mass"] = autompg_clean[
          "atomic mass"
      ].astype(str)
      autompg_clean["group"] = autompg_clean["group"].astype(str)
      autompg_clean["period"] = [
          periods[x - 1] for x in autompg_clean.period
      ]
      autompg_clean = autompg_clean[autompg_clean.group != "-"]
      autompg_clean = autompg_clean[autompg_clean.symbol != "Lr"]
      autompg_clean = autompg_clean[autompg_clean.symbol != "Lu"]
      cmap = {
          "alkali metal": "#a6cee3",
          "alkaline earth metal": "#1f78b4",
          "metal": "#d93b43",
          "halogen": "#999d9a",
          "metalloid": "#e08d49",
          "noble gas": "#eaeaea",
          "nonmetal": "#f1d4Af",
          "transition metal": "#599d7A",
      }
      source = ColumnDataSource(autompg_clean)
      p = figure(
          width=900,
          height=500,
          title="Periodic Table (omitting LA and AC Series)",
          x_range=groups,
          y_range=list(reversed(periods)),
          toolbar_location=None,
          tools="hover",
      )
      p.rect(
          "group",
          "period",
          0.95,
          0.95,
          source=source,
          fill_alpha=0.6,
          legend_label="metal",
          color=factor_cmap(
              "metal",
              palette=list(cmap.values()),
              factors=list(cmap.keys()),
          ),
      )
      text_props = {
          "source": source,
          "text_align": "left",
          "text_baseline": "middle",
      }
      x = dodge("group", -0.4, range=p.x_range)
      r = p.text(x=x, y="period", text="symbol", **text_props)
      r.glyph.text_font_style = "bold"
      r = p.text(
          x=x,
          y=dodge("period", 0.3, range=p.y_range),
          text="atomic number",
          **text_props,
      )
      r.glyph.text_font_size = "8pt"
      r = p.text(
          x=x,
          y=dodge("period", -0.35, range=p.y_range),
          text="name",
          **text_props,
      )
      r.glyph.text_font_size = "5pt"
      r = p.text(
          x=x,
          y=dodge("period", -0.2, range=p.y_range),
          text="atomic mass",
          **text_props,
      )
      r.glyph.text_font_size = "5pt"
      p.text(
          x=["3", "3"],
          y=["VI", "VII"],
          text=["LA", "AC"],
          text_align="center",
          text_baseline="middle",
      )
      p.hover.tooltips = [
          ("Name", "@name"),
          ("Atomic number", "@{atomic number}"),
          ("Atomic mass", "@{atomic mass}"),
          ("Type", "@metal"),
          ("CPK color", "$color[hex, swatch]:CPK"),
          ("Electronic configuration", "@{electronic configuration}"),
      ]
      p.outline_line_color = None
      p.grid.grid_line_color = None
      p.axis.axis_line_color = None
      p.axis.major_tick_line_color = None
      p.axis.major_label_standoff = 0
      p.legend.orientation = "horizontal"
      p.legend.location = "top_center"
      save(p)
      logger.report_media(
          "html",
          "periodic_html",
          iteration=iteration,
          local_path="periodic.html",
      )
  
file_path: clearml/examples/reporting/html_reporting.py
imports: import math
  import numpy
  from bokeh.models import ColumnDataSource, GraphRenderer, Ellipse, StaticLayoutProvider
  from bokeh.palettes import Spectral5, Spectral8
  from bokeh.plotting import figure, output_file, save
  from bokeh.sampledata.autompg import autompg_clean
  from bokeh.sampledata.periodic_table import elements
  from bokeh.transform import dodge, factor_cmap
  from clearml import Task, Logger
label_desc: Use image node_id 2 for calling a global function with example usage: report_html_periodic_table(logger, iteration) without return types