def METHOD_NAME(ndim, bound, bootstrap=5, seed=None, ngrid=40):
    """ Plot missing volume for a given ndim
    As a function of bound topology and nlive
    """
    if seed is None:
        seed = 1
        rstate_data = np.random.default_rng(seed)
        rstate_dyn = np.random.default_rng(seed * 100 + 1)
    minnlive = 2 * ndim + 1
    maxnlive = 1000
    nlives = np.unique((10**np.linspace(np.log10(minnlive), np.log10(maxnlive),
                                        ngrid)).astype(int))
    plt.clf()
    objs = ['ball', 'pin', 'shell', 'torus', 'cylinder']
    nobs = len(objs)
    ny = int(math.floor(np.sqrt(nobs)))
    nx = int(math.ceil(nobs * 1. / ny))
    for i in range(nobs):
        plt.subplot(ny, nx, 1 + i)
        curo = objs[i]
        fracs = np.array([
            1 - doit(_,
                     curo,
                     ndim,
                     bound,
                     bootstrap=bootstrap,
                     rstate_data=rstate_data,
                     rstate_dyn=rstate_dyn)[1] for _ in nlives
        ])
        plt.semilogx(nlives, fracs, '.')
        plt.xlabel('Nlive')
        if i == 0:
            postf = '%d-D bound %s' % (ndim, bound)
        else:
            postf = ''
        plt.title(curo + ' ' + postf)
        plt.ylabel('missing fraction')
        plt.ylim(0, 1)
        plt.xlim(10, 1000)
    plt.tight_layout()