(Perhaps a big part of the problem is the nasty way errors are handled in interactive matplotlib plots. I wouldn't mind fail-on-draw half as much if it didn't behave so unhelpfully in the interactive scenario.)