It looks like MNE turns on interactive mode, which is why these figures appear even if show=False. In my opinion, this is an issue (or at the very least highly unexpected behavior), since Matplotlib’s default is to disable interactive mode. Do you know if (1) MNE really enables interactive plotting, (2) how to disable it (plt.ioff() does not work), and (3) if this is really an intentional “feature”?