Я пытаюсь нарисовать поверхность в 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))
Что я здесь не так делаю?