<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def plot(self, resolution_constant_regions=20, resolution_smooth_regions=200):
 """ Return arrays x, y for plotting the piecewise constant function. Just the minimum number of straight lines are returned if ``eps=0``, otherwise `resolution_constant_regions` plotting intervals are insed in the constant regions with `resolution_smooth_regions` plotting intervals in the smoothed regions. """

        if self.eps == 0:
            x = []; y = []
            for I, value in zip(self._indicator_functions, self._values):
                x.append(I.L)
                y.append(value)
                x.append(I.R)
                y.append(value)
            return x, y
        else:
            n = float(resolution_smooth_regions)/self.eps
            if len(self.data) == 1:
                return [self.L, self.R], [self._values[0], self._values[0]]
            else:
                x = [np.linspace(self.data[0][0], self.data[1][0]-self.eps,
                                 resolution_constant_regions+1)]
                # Iterate over all internal discontinuities
                for I in self._indicator_functions[1:]:
                    x.append(np.linspace(I.L-self.eps, I.L+self.eps,
                                         resolution_smooth_regions+1))
                    x.append(np.linspace(I.L+self.eps, I.R-self.eps,
                                         resolution_constant_regions+1))
                # Last part
                x.append(np.linspace(I.R-self.eps, I.R, 3))
                x = np.concatenate(x)
                y = self(x)
                return x, y