我目前正在使用matplotlib / pyplot在3d中绘制一个对象,如下所示:
fig = plt.figure().gca(projection='3d')
plot = fig.plot_surface(X, Y, Z, rstride=4, cstride=4, linewidth=0)
Z是某些函数F(X,Y)
的{{1}}解决方案。稍后我想查找F
的对称最大化,我的意思是F
。因此,在此前面的步骤中,以某种方式强调2d对角n = arg max_x F(x,n)
。
有什么好方法可以强调这个对角线?我想象在所有(x = y)上绘制平面对角线(x = y,z = 0)或某种灰色区域。有更好的方法吗?我将如何通过matplotlib / pyplot实现它们?
不需要,但由于有些人一直坚持使用可重复的示例 - 这里有x==y
,X
,Y
的一些数据:
Z
答案 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')
添加这些图,我们得到了这个:
我将表面的alpha设置为0.6:
axes.plot_surface(X, Y, Z, rstride=4, cstride=4, linewidth=0, alpha = 0.6)