我想用尺寸[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。
有人能协助我这个吗?