def shade_region(self, x, lower, upper, color='lightgray'):
        """Shade a region between upper and lower bounds.

        :param x: array containing x-values
        :param lower: array containing y-values of lower bounds
        :param upper: array containing y-values of upper bounds
        :param color: TikZ style to color the region

        """
        self.shaded_regions_list.append({'data': list(zip(x, lower, upper)),
                                         'color': color})
Shade a region between upper and lower bounds.

        :param x: array containing x-values
        :param lower: array containing y-values of lower bounds
        :param upper: array containing y-values of upper bounds
        :param color: TikZ style to color the region