code: def dot(self, serie, r_max):
          
          serie_node = self.svg.serie(serie)
          view_values = list(map(self.view, serie.points))
          for i, value in safe_enumerate(serie.values):
              x, y = view_values[i]
  
              if self.logarithmic:
                  log10min = log10(self._min) - 1
                  log10max = log10(self._max or 1)
  
                  if value != 0:
                      size = r_max * ((log10(abs(value)) - log10min) /
                                      (log10max - log10min))
                  else:
                      size = 0
              else:
                  size = r_max * (abs(value) / (self._max or 1))
  
              metadata = serie.metadata.get(i)
              dots = decorate(
                  self.svg, self.svg.node(serie_node['plot'], class_="dots"),
                  metadata
              )
              alter(
                  self.svg.node(
                      dots,
                      'circle',
                      cx=x,
                      cy=y,
                      r=size,
                      class_='dot reactive tooltip-trigger' +
                      (' negative' if value < 0 else '')
                  ), metadata
              )
  
              val = self._format(serie, i)
              self._tooltip_data(
                  dots, val, x, y, 'centered', self._get_x_label(i)
              )
              self._static_value(serie_node, val, x, y, metadata)
docs: Draw a dot line