在python中,我的数据约束线框图的边界条件有一个概念上的问题。谁能给我解释一下我哪里出错了吗?在
我希望边界限制在-1.0<;x<;1.2,0<;y<;0.25和-0.6<;z<;0.2之间
fig = plt.figure()
ax = plt.subplot(111, projection='3d')
def log_OIII_Hb_NII(log_NII_Ha, eps=0):
return 1.19 + eps + 0.61 / (log_NII_Ha - eps - 0.47)
def log_OIII_Hb_OI(log_OI_Ha, eps=0):
return 1.33 + eps + 0.73 / (log_OI_Ha - eps + 0.59)
def log_OIII_Hb_SII(log_SII_Ha, eps=0):
return 1.30 + eps + 0.72 / (log_SII_Ha - eps - 0.32)
NII = np.linspace(-2.0, 0.35)
ax.set_xlim3d(-1.0, 1.2)
ax.set_ylim3d( 0.0, 0.25)
ax.set_zlim3d(-0.6, 0.2)
ax.plot_wireframe(NII, 0, log_OIII_Hb_NII(NII))
ax.plot_wireframe(NII, 0, log_OIII_Hb_NII(NII, 0.1))
ax.plot_wireframe(NII, 0, log_OIII_Hb_NII(NII, -0.1))
ax.plot_wireframe(NII, 0.1, log_OIII_Hb_NII(NII))
ax.plot_wireframe(NII, 0.1, log_OIII_Hb_NII(NII, 0.1))
ax.plot_wireframe(NII, 0.1, log_OIII_Hb_NII(NII, -0.1))
ax.plot_wireframe(NII, 0.2, log_OIII_Hb_NII(NII))
ax.plot_wireframe(NII, 0.2, log_OIII_Hb_NII(NII, 0.1))
ax.plot_wireframe(NII, 0.2, log_OIII_Hb_NII(NII, -0.1))
plt.show()
如果我正确地解释了您的问题,我想您会发现使用
ax.set_xlim3d
只会限制轴,而不是实际的数据本身。这与matplotlibs
normal2D绘图的情况相反,在2D图中,设置限制也会限制显示的实际数据。在下面是一个例子:
在左边,我使用
ax1.set_xlim3d(0.0, 10.0)
来限制数据,这限制了轴,而不是实际数据。在右边我限制了实际数据本身。在如果这是您的问题,那么如何解决它将取决于
NII, log_OIII_Hb_NII(NII),...
到底是什么(如果将来可以,提供一些人们可以使用的测试数据)以及如何生成它。在This post似乎包含相关方法。在
相关问题 更多 >
编程相关推荐