def beeswarm(self, orig_xy, d):
        # In this method, ``x`` is always the categorical axis
        # Center of the swarm, in point coordinates
        midline = orig_xy[0, 0]

        # Start the swarm with the first point
        swarm = [orig_xy[0]]

        # Loop over the remaining points
        for xy_i in orig_xy[1:]:

            # Find the points in the swarm that could possibly
            # overlap with the point we are currently placing
            neighbors = self.could_overlap(xy_i, swarm, d)

            # Find positions that would be valid individually
            # with respect to each of the swarm neighbors
            candidates = self.position_candidates(xy_i, neighbors, d)

            # Remove the positions that overlap with any of the
            # other neighbors
            candidates = self.prune_candidates(candidates, neighbors, d)

            # Find the most central of the remaining positions
            offsets = np.abs(candidates[:, 0] - midline)
            best_index = np.argmin(offsets)
            new_xy_i = candidates[best_index]
            swarm.append(new_xy_i)

        return np.array(swarm)
This is called when an incoming web request on this actor is being
dataset/ETHPy150Open mwaskom/seaborn/seaborn/categorical.py/_SwarmPlotter.beeswarm--crossover with--dataset/ETHPy150Open lsaffre/lino/lino/core/tables.py/AbstractTable.parse_req