У меня есть какая-то функция f(x,y) --> z
Диапазон x
мал, обычно ~ 0,1 -1
Диапазон y
велик, обычно 1e8 - 1e14
Вывод функции z
также имеет большой диапазон: ~ 1e25 - 1e45
Как лучше всего построить эту функцию в Python?
Ясно, что мне нужны какие-то логарифмические оси, но проблема масштабирования логов на трехмерных графиках в matplotlib lib - это проблема ( см. Здесь )
Я пробовал график цветовой шкалы, например
fig, ax = plt.subplots()
x = np.linspace(1e8,1e14,500)
y = np.linspace(0.01,1,500)
X,Y = np.meshgrid(x,y)
Z = process(X,Y).T
im = plt.imshow(Z,cmap=cm.RdBu,norm=LogNorm())
im.set_interpolation('bilinear')
cb = fig.colorbar(im)
Но цвета, как правило, «размываются», например, сюжет в основном состоит только из одного цвета, а галочки x / y идут странно из-за нормализации, которую я не нашел способа исправить.
Есть идеи?