code: def calc_ecg_grids(minsig, maxsig, sig_units, fs, maxt, time_units):
      
      # Get the grid interval of the x axis
      if time_units == 'samples':
          majorx = 0.2 * fs
          minorx = 0.04 * fs
      elif time_units == 'seconds':
          majorx = 0.2
          minorx = 0.04
      elif time_units == 'minutes':
          majorx = 0.2 / 60
          minorx = 0.04/60
      elif time_units == 'hours':
          majorx = 0.2 / 3600
          minorx = 0.04 / 3600
  
      # Get the grid interval of the y axis
      if sig_units.lower()=='uv':
          majory = 500
          minory = 125
      elif sig_units.lower()=='mv':
          majory = 0.5
          minory = 0.125
      elif sig_units.lower()=='v':
          majory = 0.0005
          minory = 0.000125
      else:
          raise ValueError('Signal units must be uV, mV, or V to plot ECG grids.')
  
      major_ticks_x = np.arange(0, upround(maxt, majorx) + 0.0001, majorx)
      minor_ticks_x = np.arange(0, upround(maxt, majorx) + 0.0001, minorx)
  
      major_ticks_y = np.arange(downround(minsig, majory),
                                upround(maxsig, majory) + 0.0001, majory)
      minor_ticks_y = np.arange(downround(minsig, majory),
                                upround(maxsig, majory) + 0.0001, minory)
  
      return (major_ticks_x, minor_ticks_x, major_ticks_y, minor_ticks_y)
docs: Calculate tick intervals for ecg grids
  
      - 5mm 0.2s major grids, 0.04s minor grids
      - 0.5mV major grids, 0.125 minor grids
  
      10 mm is equal to 1mV in voltage.