docs: def plot_cdf(self, n=(0, 1, 2, 3), d_min=None, d_max=None, pts=500,
                   method='logarithmic'):   # pragma: no cover
          r'''Plot the cumulative distribution function of the particle size 
          distribution. The plotted range can be specified using `d_min` and 
          `d_max`, or estimated automatically. One or more order can be plotted,
          by providing an iterable of ints as the value of `n` or just one int.
                  
          Parameters
          ----------
          n : tuple(int) or int, optional
              None (for the `order` specified when the distribution was created),
              0 (number), 1 (length), 2 (area), 3 (volume/mass),
              or any integer; as many as desired may be specified, [-]
          d_min : float, optional
              Lower particle size diameter, [m]
          d_max : float, optional
              Upper particle size diameter, [m]
          pts : int, optional
              The number of points for values to be calculated, [-]
          method : str, optional
              Either 'linear', 'logarithmic', a Renard number like 'R10' or 'R5' 
              or'R2.5', or one of the sieve standards 'ISO 3310-1 R40/3', 
              'ISO 3310-1 R20', 'ISO 3310-1 R20/3', 'ISO 3310-1', 
              'ISO 3310-1 R10', 'ASTM E11', [-]
          '''
          try:
              import matplotlib.pyplot as plt
          except:  # pragma: no cover
              raise Exception(NO_MATPLOTLIB_MSG)
  
          ds = self.ds_discrete(d_min=d_min, d_max=d_max, pts=pts, method=method)
          try:
              for ni in n:
                  cdfs = self.cdf_discrete(ds=ds, n=ni)
                  plt.semilogx(ds, cdfs, label=_label_distribution_n(ni))
          except:
              cdfs = self.cdf_discrete(ds=ds, n=n)
              plt.semilogx(ds, cdfs, label=_label_distribution_n(n))
          if self.points:
              plt.plot(self.ds, self.fraction_cdf, '+', label='Volume/Mass points')
              
              if hasattr(self, 'area_fractions'):
                  plt.plot(self.ds, cumsum(self.area_fractions), '+', label='Area points')
              if hasattr(self, 'length_fractions'):
                  plt.plot(self.ds, cumsum(self.length_fractions), '+', label='Length points')
              if hasattr(self, 'number_fractions'):
                  plt.plot(self.ds, cumsum(self.number_fractions), '+', label='Number points')
                  
          plt.ylabel('Cumulative density function, [-]')
          plt.xlabel('Particle diameter, [m]')
          plt.title('Cumulative density function of %s distribution with '
                    'parameters %s' %(self.name, self.parameters))
          plt.legend()
          plt.show()