Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/332.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 基于相邻轴值在三维matplotlib曲面图中显示轮廓_Python_Matplotlib_Axis_Contour - Fatal编程技术网

Python 基于相邻轴值在三维matplotlib曲面图中显示轮廓

Python 基于相邻轴值在三维matplotlib曲面图中显示轮廓,python,matplotlib,axis,contour,Python,Matplotlib,Axis,Contour,关于另一个问题,我已经在这里发布了一个类似于以下示例的示例: 我再次发布它是关于一个不同的问题: from mpl_toolkits.mplot3d import axes3d import matplotlib.pyplot as plt from matplotlib import cm from mpl_toolkits.mplot3d import Axes3D import numpy as np fig = plt.figure() ax = fig.gca(projection

关于另一个问题,我已经在这里发布了一个类似于以下示例的示例:

我再次发布它是关于一个不同的问题:

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

fig = plt.figure()
ax = fig.gca(projection='3d')
X = np.array([[200,800,1500,2000,3000],[200,700,1500,2000,3000],[200,800,1500,2000,3000],[200,800,1500,2000,3000]])
Y = np.array([[50,50,50,50,50],[350,350,350,350,350],[500,500,500,500,500],[1000,1000,1000,1000,1000]])
Z = np.array([[0,0,33,64,71],[44,62,69,74,76],[59,67,72,75,77],[63,68,73,76,77]])

ax.plot_surface(X, Y, Z, rstride=1, cstride=1, alpha=0.5)

cset = ax.contour(X, Y, Z, zdir='x', offset=200, cmap=cm.coolwarm)

levels = [500,700,1000,2000,3000]
ax.set_xticks(levels)

ax.set_xlabel('X')
ax.set_xlim(200, 3000)
ax.set_ylabel('Y')
ax.set_ylim(0, 1000)
ax.set_zlabel('Z')
ax.set_zlim(0, 100)

plt.show()
是否可以让我的等高线绘制与相邻轴值相等的多个等高线:

e、 图左侧Y-Z平面的轮廓。不需要显示7个等高线(我也不确定它们对应的X值),是否可以为每个X刻度值显示一个等高线?i、 e.500700100020003000

我希望这是有意义的,它将允许观看者跟随对应于X=700的轮廓,并看到对于这个固定的X值,Z相对于Y的变化。这将允许我为我特别感兴趣的X值设置轮廓


谢谢您的帮助。

您可以将标高直接设置为等高线函数的参数,如下所示:

levels = [500,700,1000,2000,3000]
cset = ax.contour(X, Y, Z, levels, zdir='x', offset=200, cmap=cm.coolwarm)

您可以直接将级别设置为等高线函数的参数,即
cset=ax.contour(X,Y,Z,levels,zdir='X',offset=200,cmap=cm.coolwarm)
@noelsgura我认为您应该将此作为答案发布,以便将问题标记为已回答。谢谢您,Noel工作正常!