在Python中大范围绘制3D数据的最佳方法

时间:2018-09-19 16:12:37

标签: python python-3.x matplotlib plot

我有一些功能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刻度变得怪异,我找不到解决方法。

有什么想法吗?

0 个答案:

没有答案
相关问题