def limits(self, x1, x2, y1, y2):
        """Set the coordinate boundaries of plot"""

        self.x1 = x1
        self.x2 = x2
        self.y1 = y1
        self.y2 = y2
        self.xscale = (self.cx2 - self.cx1) / (self.x2 - self.x1)
        self.yscale = (self.cy2 - self.cy1) / (self.y2 - self.y1)

        # Determine the limits of the canvas
        (cx1, cy1) = self.p2c((0, -math.pi / 2.0))
        (cx2, cy2) = self.p2c((2 * math.pi, math.pi / 2.0))
        # # set the scroll region to the size of the camvas plus a boundary to allow the canvas edge to be at centre
        self.config(scrollregion=(
            cx2 - self.width / 2.0, cy2 - self.height / 2.0, cx1 + self.width / 2.0, cy1 + self.height / 2.0))