Я пытаюсь сделать поверхностный график в matplotlib, но я не могу сделать форматирование оси z хорошим. Я хочу, чтобы это было на научной нотации, с префиксом вдоль оси и показателем над осью (как то, что вы обычно получаете в Matlab). На данный момент я могу получить значения без научной нотации (с запятой и пятью нулями спереди), или я получаю префиксы, но не экспоненты...
Попробуйте 1: (дает научную нотацию, но не показатель)
from matplotlib import ticker
ax = fig.gca(projection='3d')
ax.plot_surface(X, Y, Z, rstride=3, cstride=3)
formatter = ticker.ScalarFormatter()
formatter.set_scientific(True)
formatter.set_powerlimits((-2,2))
ax.w_zaxis.set_major_formatter(formatter)
Попробуйте 2: (дает значения в десятичной форме, такие же, как и выходные данные по умолчанию)
from matplotlib import ticker
ax = fig.gca(projection='3d')
ax.plot_surface(X, Y, Z, rstride=3, cstride=3)
ax.ticklabel_format(axis="z", style="sci", scilimits=(0,0))
Что я здесь делаю неправильно?