You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将Hypertools绘图嵌入Matplotlib子图网格中?

把Hypertools绘图整合到Matplotlib子图网格里

我来给你一步步拆解实现方法,亲测好用:

  1. 先搭建Matplotlib子图框架
    先用matplotlib.pyplot.subplots()创建你想要的子图网格,比如常见的2行2列布局,这会返回一个画布对象和轴对象数组,后续我们就把Hypertools的图绑定到这些轴上。
    示例代码:

    import matplotlib.pyplot as plt
    import hypertools as hyp
    import numpy as np
    
    # 生成几组测试用的样本数据
    data1 = np.random.randn(100, 3)
    data2 = np.random.randn(100, 3)
    data3 = np.random.randn(100, 3)
    data4 = np.random.randn(100, 3)
    
    # 创建2×2的子图网格,指定画布大小
    fig, axes = plt.subplots(2, 2, figsize=(10, 8))
    
  2. 把Hypertools绘图绑定到指定子图
    这一步是关键!你只需要在调用hyp.plot()时,通过ax参数直接指定要使用的子图轴,再加上show=False阻止它单独弹出窗口,Hypertools就会把图画在你指定的子图位置里。
    示例代码:

    # 给第一个子图绘图并加标题
    hyp.plot(data1, show=False, ax=axes[0, 0])
    axes[0, 0].set_title('第一组数据可视化')
    
    # 第二个子图
    hyp.plot(data2, show=False, ax=axes[0, 1])
    axes[0, 1].set_title('第二组数据可视化')
    
    # 第三个子图
    hyp.plot(data3, show=False, ax=axes[1, 0])
    axes[1, 0].set_title('第三组数据可视化')
    
    # 第四个子图
    hyp.plot(data4, show=False, ax=axes[1, 1])
    axes[1, 1].set_title('第四组数据可视化')
    
  3. 调整布局并显示整体图形
    最后调用plt.tight_layout()自动调整子图间距,避免标签、标题重叠,再用plt.show()把整个子图网格展示出来:

    plt.tight_layout()
    plt.show()
    

额外小技巧

如果你已经提前得到了DataGeometry对象(比如之前调用hyp.plot(data, show=False)返回的结果),也可以事后修改它的ax属性来绑定子图轴,再重新渲染:

# 先得到DataGeometry对象
dg = hyp.plot(data1, show=False)
# 绑定到指定子图轴
dg.ax = axes[0,0]
# 重新绘制
dg.plot()

这样就能完美把多个Hypertools绘图整合到Matplotlib的子图网格里,再也不会弹出独立窗口啦!

内容的提问来源于stack exchange,提问作者Daniel Mahler

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 04:35:21