【问题标题】:Save multiple figures in one pdf page, matplotlib在一个pdf页面中保存多个图形,matplotlib
【发布时间】:2015-09-18 12:55:55
【问题描述】:

我试图在一个 pdf 页面中获取我的数字,但我不知道如何做到这一点。我发现可以使用“matplotlib.backends.backend_pdf”将多个图形保存在一个 pdf 文件中,但它不适用于一页。 有没有人有任何想法?将数字转换为一个数字?

【问题讨论】:

    标签: python pdf matplotlib


    【解决方案1】:

    您可以使用 matplotlib gridspec 在 1 个窗口中绘制多个图

    http://matplotlib.org/users/gridspec.html

    from matplotlib.gridspec import GridSpec
    import random
    import numpy
    from matplotlib import pyplot as pl
    
    fig = pl.figure(figsize=(12, 16))
    G = GridSpec(2,2)   
    axes_1 = pl.subplot(G[0, :])
    
    x = [random.gauss(3,1) for _ in range(400)]
    bins = numpy.linspace(-10, 10, 100)
    axes_1.hist(x, bins, alpha=0.5, label='x')
    
    axes_2 = pl.subplot(G[1, :])
    axes_2.plot(x)
    
    pl.tight_layout()
    pl.show()
    

    您可以更改行和列的值并可以细分部分。

    【讨论】:

      【解决方案2】:

      PDF 后端为每个图制作一页。使用子图将多个图合并到一个图中,它们将一起显示在 PDF 的一页上。

      【讨论】:

        【解决方案3】:

        这里是matplotlib提供的解决方案:

        from matplotlib.backends.backend_pdf import PdfPages
        import matplotlib.pyplot as plt
        
        with PdfPages('foo.pdf') as pdf:
            #As many times as you like, create a figure fig and save it:
            fig = plt.figure()
            pdf.savefig(fig)
        
            ....
            fig = plt.figure()
            pdf.savefig(fig) 
        

        在此处查找完整示例:multipage pdf matplotlib

        顺便说一句,对于一个数字,您不需要matplotlib.backends.backend_pdf,只需像这样添加 pdf 扩展名:

        plt.savefig("foo.pdf")
        

        【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2023-03-29
        • 1970-01-01
        • 2021-11-14
        • 2017-05-06
        • 2022-01-01
        • 2015-10-20
        • 2021-10-16
        相关资源
        最近更新 更多