0
我已经张贴关于这里的另一个问题类似于下面的一个例子:基于相邻轴3D matplotlib表面图形显示轮廓值
Displaying Contours in front of Surface in matplotlib
我张贴再次针对不同的问题:
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()
是否有可能有我的等值线绘制等于相邻轴值一些轮廓:
例如3D_Surface_from_code_above用于我的Y-Z平面中图片左侧的轮廓。而不是有7轮廓显示(我不知道它们对应的X值是什么),每个X刻度值可能会有一个轮廓?即500,700,1000,2000,3000。
我希望有道理,它可以让观众跟随对应于X = 700的轮廓,看看Z对于这个固定的X值是如何变化的这将使我能够为我特别感兴趣的X值设定轮廓。
谢谢你的帮助。
可以直接设置水平轮廓函数的自变量为'CSET = ax.contour(X,Y,Z ,水平,zdir ='x',偏移= 200,cmap = cm.coolwarm)' –
@NoelSegura我认为你应该发布这个答案,以便问题可以被标记为已回答。 – Dusch
谢谢诺埃尔,工作正常! – Sorade