It is rare when I use my MBP on battery power. But is there a way to only enable automatic graphics switching when on battery power?
You can try an application called "gfxCardStatus" :)
We're looking for long answers that provide some explanation and context. Don't just give a one-line answer; explain why your answer is right, ideally with citations. Answers that don't include explanations may be removed.
"is there a way to only enable automatic graphics switching when on battery power?"
Go to System Preferences -> Energy Saver There are two tabs at the top of the window; one for battery and one for AC power.
Set the graphics switching option by checking or un-checking "Automatic Graphics Switching" in those tabs.