Matplotlib:在3d图中突出显示2d对角线

时间:2015-06-11 14:35:03

标签: python matplotlib

我目前正在使用matplotlib / pyplot在3d中绘制一个对象,如下所示:

fig = plt.figure().gca(projection='3d')
plot = fig.plot_surface(X, Y, Z, rstride=4, cstride=4, linewidth=0)

the plot

Z是某些函数F(X,Y)的{​​{1}}解决方案。稍后我想查找F的对称最大化,我的意思是F。因此,在此前面的步骤中,以某种方式强调2d对角n = arg max_x F(x,n)

是有用的

有什么好方法可以强调这个对角线?我想象在所有(x = y)上绘制平面对角线(x = y,z = 0)或某种灰色区域。有更好的方法吗?我将如何通过matplotlib / pyplot实现它们?

不需要,但由于有些人一直坚持使用可重复的示例 - 这里有x==yXY的一些数据:

Z

1 个答案:

答案 0 :(得分:1)

看看这些线条的情节:

axes = figure().gca(projection='3d')

x = arange(10, 30); y= arange(10, 30)
z_1 = array([amin(Z)]*len(x))
z_2 = linspace(amin(Z), amax(Z), len(x))
x_1 = array([amax(x)]*len(x))
y_1 = array([amax(y)]*len(y))

axes.plot(x, y, z_1, 'g')
axes.plot(x, y, z_2, 'r')
axes.plot(x_1, y_1, z_2, 'y')

添加这些图,我们得到了这个:

enter image description here

我将表面的alpha设置为0.6:

axes.plot_surface(X, Y, Z, rstride=4, cstride=4, linewidth=0, alpha = 0.6)