【问题标题】:Python plot to PDF multiple figuresPython绘图到PDF多个数字
【发布时间】:2020-05-04 15:50:07
【问题描述】:

我正在尝试将多个图形绘制到一个 PDF 中,但它会生成损坏的 PDF。

import sys, os, pandas as pd, numpy as np, matplotlib.pyplot as plt
import pylab, scipy.stats as stats, calendar
from matplotlib.backends.backend_pdf import PdfPages
def plotLineGraph(df):
    fig = plt.figure()
    ax = fig.add_subplot(211)
    df.plot(ax=ax)
    ax = plt.subplot(111)
    return fig

pp = PdfPages(r'C:\myPLOT.pdf')
for ii in [1,2,3,4]:
    df = pd.DataFrame({'x': np.rand(500), 'y':np.rand(500)})
    pp.savefig(plotGraph(df))
pp.close()

我应该如何修改上面的代码,以便在一个 PDF 文件中成功获得 4 个绘图。

【问题讨论】:

    标签: python matplotlib


    【解决方案1】:

    您的代码中有几个拼写错误。

    1. 函数调用plotLineGraph而不是plotGraph
    2. numpy 没有rand,而是numpy.random.rand
    3. 您通过ax = plt.subplot(111) 创建了一个多余的轴。删除该行。

    最后考虑直接写C:\在某些windows系统中是不允许的。 总的来说,这将给出:

    import pandas as pd
    import numpy as np
    import matplotlib.pyplot as plt
    from matplotlib.backends.backend_pdf import PdfPages
    
    def plotLineGraph(df):
        fig = plt.figure()
        ax = fig.add_subplot(211)
        df.plot(ax=ax)
        return fig
    
    pp = PdfPages(r'D:\myPLOT.pdf')
    for ii in [1,2,3,4]:
        df = pd.DataFrame({'x': np.random.rand(500), 'y':np.random.rand(500)})
        pp.savefig(plotLineGraph(df))
    pp.close()
    

    【讨论】:

      猜你喜欢
      • 2013-07-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-06-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多