Matplotlib v0.99具有轮廓的曲面:zdir不起作用

时间:2011-01-27 16:53:17

标签: python matplotlib

我试图绘制函数f(x,y)=(x + 2)* y ^ 2,其中一些等级曲线投影在x-y平面上。我使用的代码是:

from mpl_toolkits.mplot3d import Axes3D
from matplotlib import cm
from matplotlib.ticker import LinearLocator, FixedLocator, FormatStrFormatter
import matplotlib.pyplot as plt
import numpy as np
from mpl_toolkits.mplot3d import axes3d, Axes3D
import pylab as p


fig = plt.figure()
ax = Axes3D(fig)
X = np.arange(0, 2.5, 0.1)
Y = np.arange(0, 2.5, 0.1)
X, Y = np.meshgrid(X, Y)

Z = ((X+2))*(Y**2)
surf = ax.plot_surface(X, Y, Z,rstride=1, cstride=1, alpha=0.3, cmap=cm.jet)
cset=plt.contour(X,Y,Z,zdir='z',offset=0)


ax.clabel(cset, fontsize=9, inline=1)
ax.set_zlim3d(0, 30)
ax.set_xlabel('X')
ax.set_ylabel('Y')
ax.set_zlabel('Z')

fig.colorbar(surf, shrink=0.5, aspect=5)
plt.show()

我的问题是zdir不起作用,即轮廓线在表面而不在x-y平面上。

有什么想法吗? 提前致谢

3 个答案:

答案 0 :(得分:3)

您的代码对我来说很好(matplotlib 1.0.1)。 enter image description here

顺便说一句:看来this示例已添加到带有matplotlib 1.0的图库中。也许这是以前版本的问题?

答案 1 :(得分:2)

zdir定义项目的方向。 (沿着x轴的zdir='x'项目)offset定义要投影到的平面的位置(沿zdir定义的轴)

Example

我猜你想要的是:

cset=plt.contour(X,Y,Z,zdir='z',offset=30)

答案 2 :(得分:0)

- > xs和ys:这些是x和y轴的坐标 - > zs:这是z轴的值。它可以是所有点的一个或每个点一个 - > zdir:这将选择z轴的尺寸(通常这是zs,但可以 是xs或ys)