Okay, I think I may have figured it out, sort of.
It looks like PyQt4 Gui doesn't support retina/high res displays yet.
When I switched to the "Tk - Tk widget toolkit" gui in IEP shell settings, the interactive windows are now in retina display. No need to mess around with any dpi settings. Just pt.plot() as normal, and Tk shows the figure very sharp on the retina screen.
However, when using plt.savefig() I still have to use the dpi parameter to save the figure as a sharp image.
-Samuel