code: def bohr_diagram():
      plot = figure(
          width=150,
          height=150,
          x_axis_type=None,
          y_axis_type=None,
          x_range=(-8, 8),
          y_range=(-8, 8),
          toolbar_location=None,
          outline_line_color=None,
          match_aspect=True,
      )
      groups = []
      for sc in df["electron shells"]:
          n = len(sc)
          group = RendererGroup(visible=False)
          groups.append(group)
          c0 = plot.circle(
              x=0,
              y=0,
              radius=list(range(1, n + 1)),
              fill_color=None,
              line_color="black",
              visible=False,
          )
          c0.group = group
          xs = np.array([])
          ys = np.array([])
          for i, c in enumerate(sc):
              da = 360 / c
              r = i + 1
              A = np.radians(np.arange(0, 360, da))
              x = r * np.cos(A)
              y = r * np.sin(A)
              xs = np.append(xs, x)
              ys = np.append(ys, y)
              # plot.scatter(x=x, y=y, size=5)
              # plot.polar.scatter(r=i+1, phi=list(range(0, 360, da)), phi_units="deg", size=5)
          c1 = plot.scatter(x=xs, y=ys, size=5, visible=False)
          c1.group = group
      return plot, groups
  
file_path: bokeh/examples/plotting/periodic_shells.py
imports: import re
  import numpy
  from bokeh.io import show
  from bokeh.models import RendererGroup
  from bokeh.models.dom import ColorRef, Div, Index, Span, Styles, Template, ToggleGroup, ValueRef
  from bokeh.plotting import figure
  from bokeh.sampledata.periodic_table import elements
  from bokeh.transform import dodge, factor_cmap
label_desc: Use image node_id 1 for calling a global function with example usage: bohr_diagram() and returns: plot,  groups