轴集xlim3d在Matplotlib中没有效果线路图

2024-09-28 20:49:04 发布

您现在位置:Python中文网/ 问答频道 /正文

在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()

Tags: ltlogreturnplotdefpltepsax
1条回答
网友
1楼 · 发布于 2024-09-28 20:49:04

如果我正确地解释了您的问题,我想您会发现使用ax.set_xlim3d只会限制轴,而不是实际的数据本身。这与matplotlibsnormal2D绘图的情况相反,在2D图中,设置限制也会限制显示的实际数据。在

下面是一个例子:

enter image description here

在左边,我使用ax1.set_xlim3d(0.0, 10.0)来限制数据,这限制了轴,而不是实际数据。在右边我限制了实际数据本身。在

如果这是您的问题,那么如何解决它将取决于NII, log_OIII_Hb_NII(NII),...到底是什么(如果将来可以,提供一些人们可以使用的测试数据)以及如何生成它。在

This post似乎包含相关方法。在

相关问题 更多 >