我有一些功能f(x,y) --> z
x
的范围很小,通常约为0.1 -1
y
的范围很大,通常为1e8-1e14
函数z
的输出范围也很大,从〜1e25-1e45
在Python中绘制此函数的最佳方法是什么?
很明显,我需要某种对数轴,但是在matplotlib lib中对3d图进行日志缩放是一个问题(see here)
例如,我尝试了一个颜色条图。
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刻度变得怪异,我找不到解决方法。
有什么想法吗?