docs: def poincare(data, sample_rate, signal=False, in_seconds=False):
      """
      -----
      Brief
      -----
      Function for generation of Poincaré Plot (Heart rate variability analysis).
  
      -----------
      Description
      -----------
      ECG signals measure the electric potential in the heart of the subject. In normal conditions, it is expeted that the
      the electric potential to be similar in different heartbeats and that the rhythm of those heartbeats to be
      maintained if all the conditions are maintained. Thus, by plotting the current RR interval against the previous one,
      it is expected that the values to be maintained. Poincaré plot, is this representation, which allows to analyse the
      heart rate variability.
  
      This function returns the x and y axis of a Poincaré plot and also the standard deviations of the more
      representative directions of the data points.
  
      ----------
      Parameters
      ----------
      data : list
          ECG signal or R peak list. When the input is a raw signal the input flag signal should be
          True.
  
      sample_rate : int
          Sampling frequency.
  
      signal : boolean
          If True, then the data argument contains the set of the ECG acquired samples.
  
      in_seconds : boolean
          If the R peaks list defined as the input argument "data" contains the sample numbers where
          the R peaks occur,
          then in_seconds needs to be True.
  
      Returns
      -------
      out : list, list, float, float
          Poincaré plot x axis and y axis, respectively. Additionally it will be returned SD1 and SD2
          parameters.
  
      """
  
      # Generation of tachogram.
      tachogram_data = tachogram(data, sample_rate, signal=signal, in_seconds=in_seconds,
                                 out_seconds=True)[0]
  
      # Poincaré Plot (x and y axis).
      x_axis = tachogram_data[:-1]
      y_axis = tachogram_data[1:]
  
      # Poincaré Parameters.
      tachogram_diff = numpy.diff(tachogram_data)
      sdsd = numpy.std(tachogram_diff)
      sdnn = numpy.std(tachogram_data)
  
      sd1 = numpy.sqrt(0.5 * numpy.power(sdsd, 2))
      sd2 = numpy.sqrt(2 * numpy.power(sdnn, 2) - numpy.power(sd1, 2))
  
      return x_axis, y_axis, sd1, sd2