Это не столько ответ на ваш исходный вопрос, сколько один из вопросов, которые вы задали в теле вашего вопроса.
Небольшая преамбула, чтобы мое название не показалось странным:
import matplotlib
from matplotlib import rc
from matplotlib.figure import Figure
ax = self.figure.add_subplot( 111 )
Как уже упоминалось, вы можете использовать ticklabel_format, чтобы указать, что matplotlib должен использовать научную нотацию для больших или малых значений:
ax.ticklabel_format(style='sci',scilimits=(-3,4),axis='both')
Вы можете повлиять на способ, которым это отображается, используя флаги в rcParams (из matplotlib import rcParams) или задав их напрямую. Я не нашел более элегантного способа переключения между научными обозначениями '1e' и 'x10 ^', чем:
ax.xaxis.major.formatter._useMathText = True
Это должно дать вам больше Matlab-esc и, возможно, лучший внешний вид. Я думаю, что следующее должно делать то же самое:
rc('text', usetex=True)