在python中,我的数据约束了线框图的边界条件,这在概念上有问题。有人能向我解释一下我哪里出了问题吗?
我希望边界被限制在-1.0
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()发布于 2014-01-21 13:31:20
如果我正确地解释您的问题,我认为您会发现使用ax.set_xlim3d只限制轴,而不限制实际数据本身。这与matplotlibs普通2D绘图中发生的情况相反,在这种情况下,设置限制也限制了显示的实际数据。
下面是一个示例:

在左边,我使用ax1.set_xlim3d(0.0, 10.0)限制数据,这限制了轴,但不限制实际数据。在右边,我限制实际数据本身。
如果这是您的问题,那么您如何修复它将取决于NII, log_OIII_Hb_NII(NII),...到底是什么(如果将来可以的话,提供一些人们可以使用的测试数据)以及如何生成它。
This post似乎包含了相关的方法。
https://stackoverflow.com/questions/21240608
复制相似问题