首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ax.set_xlim3d对ax.plot_wireframe的Matplotlib没有影响

ax.set_xlim3d对ax.plot_wireframe的Matplotlib没有影响
EN

Stack Overflow用户
提问于 2014-01-20 17:38:12
回答 1查看 2.3K关注 0票数 1

在python中,我的数据约束了线框图的边界条件,这在概念上有问题。有人能向我解释一下我哪里出了问题吗?

我希望边界被限制在-1.0

代码语言:javascript
复制
    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()
EN

回答 1

Stack Overflow用户

发布于 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似乎包含了相关的方法。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21240608

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档