Ответ 1
Существует несколько способов сделать это
Вы можете просто настроить пределы мощности (doc)
ax1.xaxis.get_major_formatter().set_powerlimits((0, 1))
который устанавливает полномочия, в которых ScalerFormatter
переключается на научную нотацию
Или, вы можете использовать FuncFormatter
, который дает вам большой контроль (но вы можете удалить свою ногу).
from matplotlib import ticker
scale_pow = 2
def my_formatter_fun(x, p):
return "%.2f" % (x * (10 ** scale_pow))
ax1.get_xaxis().set_major_formatter(ticker.FuncFormatter(my_formatter_fun))
ax1.set_xlabel('my label ' + '$10^{{{0:d}}}$'.format(scale_pow))
FuncFormatter
(doc) использует 2 аргументную функцию, которая возвращает строку и использует эту функцию для форматирования метки. (Имейте в виду, это также изменит, как значения отображаются в углу интерактивных фигур). Второй аргумент - это "позиция", которая является аргументом, переданным, когда форматирование создает метки. Вы можете смело игнорировать его, но вы должны принять его (иначе вы получите ошибки от неправильного количества аргументов). Это является следствием унифицированного API всех форматировщиков и использования форматирования для отображения местоположения мыши в интерактивном режиме.