Python-Reportlabs – сохранить 2 разных графика на двух разных страницах?

У меня есть следующий код, где я рисую вертикальную гистограмму и линейный график, а также внутри PDF.

Как сохранить эти 2 графика на двух разных страницах PDF. Я видел, что это можно сделать, используя –

c = canvas.Canvas("hello.pdf") hello(c) c.showPage() c.save() 

Но вместо использования Canvas я использую объект Drawing, в котором showPage() не существует.

Как сохранить 2 графика на двух разных страницах PDF? Вправо второй график (линейная диаграмма) перекрывает первый график (вертикальная гистограмма), тем самым препятствуя гистограмме.

Вот мой код.

 from reportlab.graphics.shapes import Drawing from reportlab.graphics.charts.barcharts import VerticalBarChart drawing = Drawing(400, 200) data = [ (13, 5, 20, 22, 37, 45, 19, 4), (14, 6, 21, 23, 38, 46, 20, 5) ] bc = VerticalBarChart() bc.x = 50 bc.y = 50 bc.height = 125 bc.width = 300 bc.data = data #bc.strokeColor = colors.black bc.valueAxis.valueMin = 0 bc.valueAxis.valueMax = 50 bc.valueAxis.valueStep = 10 bc.categoryAxis.labels.boxAnchor = 'ne' bc.categoryAxis.labels.dx = 8 bc.categoryAxis.labels.dy = -2 bc.categoryAxis.labels.angle = 30 bc.categoryAxis.categoryNames = ['Jan-99','Feb-99','Mar-99', 'Apr-99','May-99','Jun-99','Jul-99','Aug-99'] drawing.add(bc) drawing.save() from reportlab.graphics.charts.lineplots import LinePlot from reportlab.graphics.widgets.markers import makeMarker drawing = Drawing(400, 200) data = [ ((1,1), (2,2), (2.5,1), (3,3), (4,5)), ((1,2), (2,3), (2.5,2), (3.5,5), (4,6)) ] lp = LinePlot() lp.x = 50 lp.y = 50 lp.height = 125 lp.width = 300 lp.data = data lp.joinedLines = 1 lp.lines[0].symbol = makeMarker('FilledCircle') lp.lines[1].symbol = makeMarker('Circle') lp.lineLabelFormat = '%2.0f' #lp.strokeColor = colors.black lp.xValueAxis.valueMin = 0 lp.xValueAxis.valueMax = 5 lp.xValueAxis.valueSteps = [1, 2, 2.5, 3, 4, 5] lp.xValueAxis.labelTextFormat = '%2.1f' lp.yValueAxis.valueMin = 0 lp.yValueAxis.valueMax = 7 lp.yValueAxis.valueSteps = [1, 2, 3, 5, 6] drawing.add(lp) drawing.save() drawing.save(formats=['pdf'],outDir='.',fnRoot=None) 

One Solution collect form web for “Python-Reportlabs – сохранить 2 разных графика на двух разных страницах?”

Сделайте холст и нарисуйте на нем свои рисунки:

 from reportlab.pdfgen import canvas from reportlab.graphics import renderPDF c = canvas.Canvas('hi.pdf') # your drawing # drawing = Drawing(400, 200) x, y = 0, 0 # coordinates (from left bottom) renderPDF.draw(drawing, c, x, y, showBoundary=False) c.showPage() # to end a page and start a new one # extra pages content c.save() # to save :D the whole document 

Надеюсь, поможет 🙂

  • Прозрачность в PNG с отчетностью 2.3
  • Установка: Reportlab: «ImportError: нет модуля с именем reportlab.lib»
  • Как добавить несколько строк внизу (нижний колонтитул) PDF?
  • Каков самый простой способ добавить гиперссылку на элемент canvas в ReportLab?
  • python reportlab - registerFont - django - шрифт недоступен через некоторое время
  • Использование Python ReportLab для splitfirst / splitlast
  • Создание градиента в PDF-файле с использованием reportlab
  • Что определяет вертикальное пространство в таблицах Reportlab?
  • Ссылка на изображение ReportLab
  • Есть ли matplotlib для ReportLab?
  • Добавление текста поверх существующих PDF-файлов с помощью reportlab
  • Python - лучший язык программирования в мире.