Python сюжет в PDF несколько фигур - PullRequest
1 голос
/ 17 января 2020

Я пытаюсь нанести несколько рисунков в один 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()

Как мне изменить вышеуказанный код, чтобы я успешно получил 4 графика в одном файле PDF.

1 Ответ

2 голосов
/ 17 января 2020

В вашем коде есть несколько опечаток.

  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()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...