code: def _raw_ticks(self, vmin, vmax):
      scale, offset = scale_range(vmin, vmax, self.nbins)
      _vmin = vmin - offset
      _vmax = vmax - offset
      steps = self._extended_steps * scale
  
      raw_step = (_vmax - _vmin) / self.nbins
      large_steps = steps >= raw_step
  
      # Find index of smallest large step
      istep = np.nonzero(large_steps)[0][0]
  
      # Start at smallest of the steps greater than the raw step, and check
      # if it provides enough ticks. If not, work backwards through
      # smaller steps until one is found that provides enough ticks.
      for step in steps[: istep + 1][::-1]:
          best_vmin = (_vmin // step) * step
  
          # Find tick locations spanning the vmin-vmax range, taking into
          # account degradation of precision when there is a large offset.
          # The edge ticks beyond vmin and/or vmax are needed for the
          # "round_numbers" autolimit mode.
          edge = _Edge_integer(step, offset)
          low = edge.le(_vmin - best_vmin)
          high = edge.ge(_vmax - best_vmin)
          ticks = np.arange(low, high + 1) * step + best_vmin
          # Count only the ticks that will be displayed.
          nticks = ((ticks <= _vmax) & (ticks >= _vmin)).sum()
          if nticks >= self._min_n_ticks:
              break
      return ticks + offset
  
file_path: holoviews/holoviews/util/locator.py
imports: import math
  import numpy
label_desc: Use image node_id 2 for calling the MaxNLocator obj's underlying member method code with example usage: obj._raw_ticks(vmin, vmax) and returns: unknown