无法在matplotlib中的3D绘图中将轴刻度设置为对数

时间:2017-10-23 14:20:50

标签: python matplotlib mplot3d

我想用尺寸[50,250] 3D绘制数据2d数组的表面。两个轴(x, z)应该是对数刻度。这是一个MWE:

import numpy as np
xx = np.asanyarray([np.ones([250])*(m+1) for m in range(50)])
yy = np.asanyarray([range(250) for m in range(50)])
zz = np.asanyarray([np.sqrt(np.arange(250)*m) for m in range(50)])

import matplotlib.pyplot as plt
from matplotlib import cm

fig = plt.figure()
ax = fig.gca(projection='3d')
surf = ax.plot_surface(xx, yy, zz, cmap=cm.coolwarm,
                       linewidth=0, antialiased=False)

ax.yaxis.set_scale('log')

我发现的所有其他答案表明最后一行应该可以解决问题。相反,它会引发以下AttributeError: 'YAxis' object has no attribute 'set_scale'

我不明白为什么会这样做。我在Mac Osx 10.9.7(即2.1.0)中安装了最新版本的matplotlib。

有人能协助我这个吗?

0 个答案:

没有答案