我的数据限制了python中线框图的边界条件的概念性问题。谁能向我解释我哪里出错了?
我希望边界约束在-1.0之间。 x&lt; 1.2,0&lt; y&lt; 0.25和-0.6 < z&lt; 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()
答案 0 :(得分:0)
如果我将您的问题解释正确,我认为您发现使用ax.set_xlim3d
仅限制轴而不是实际数据本身。这与matplotlibs
正常 2D图表的情况相反,其中设置限制也限制了显示的实际数据。
以下是一个例子:
在左侧,我使用ax1.set_xlim3d(0.0, 10.0)
限制数据,这限制了轴而不是实际数据。在右边,我限制了实际数据本身。
如果这是您的问题,那么您如何修复它将取决于NII, log_OIII_Hb_NII(NII),...
究竟是什么(如果您将来可以提供一些人们可以使用的测试数据)以及如何生成它。
This post似乎包含相关方法。