在python中使用mplot3d绘制透明的平面

在python中使用mplot3d绘制透明的平面,python,numpy,matplotlib,Python,Numpy,Matplotlib,我想显示3d绘图数据之间的分隔。就像在Z=100曲面的顶部和底部之间划分它们一样 这是我的代码: x、 y,t是点列表,显示时间t时对象的x,y坐标 cor_x=np.poly1dnp.polyfitt,x,5 cor_y=np.poly1dnp.polyfitt,y,5 ax=plt.ax投影=3d ax.plot3Dcor\u xt,cor\u yt,t 节目 我只需要一个透明的z=100曲面。如果要绘制曲面,请使用ax.plot\u surfaceX,Y,z。其中X,Y是使用np.mesh

我想显示3d绘图数据之间的分隔。就像在Z=100曲面的顶部和底部之间划分它们一样

这是我的代码:

x、 y,t是点列表,显示时间t时对象的x,y坐标 cor_x=np.poly1dnp.polyfitt,x,5 cor_y=np.poly1dnp.polyfitt,y,5 ax=plt.ax投影=3d ax.plot3Dcor\u xt,cor\u yt,t 节目
我只需要一个透明的z=100曲面。

如果要绘制曲面,请使用ax.plot\u surfaceX,Y,z。其中X,Y是使用np.meshgrid创建的二维网格,z是同一网格上的数据。通过获取数据,乘以0,再加上100,可以生成z=100的曲面

可以使用alpha更改透明度。请注意,越透明,越难看出哪种方法可能不是分离数据的最佳方法

这里有一个例子

import numpy as np
from mpl_toolkits.mplot3d import Axes3D  
import matplotlib.pyplot as plt

def f(x, y):
    return x**2 + y**2

fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')


x = y = np.arange(-10.0, 10.0, .1)
X, Y = np.meshgrid(x, y)

Z = f(X,Y)

ax.plot_surface(X, Y, Z,color='gray',alpha=.8)


#To plot the surface at 100, use your same grid but make all your numbers zero
Z2 = Z*0.+100
ax.plot_surface(X, Y, Z2,color='r',alpha=.3) #plot the surface

plt.show()