Saving a figure after invoking pyplot.show() results in an empty file

The following example code generates a simple plot, then saves it to ‘fig1.pdf’, then displays it, then saves it again to ‘fig2.pdf’. The first image looks as expected, but the second one is blank (contains a white square). What’s actually going on here? The line plt.show() apparently messes something up, but I can’t figure out what/how!