Dec-19-2017, 02:53 PM
Good morning, I'm Denis and I gently ask help about reporlab library. I'm trying to create a pdf with some graphs automatically with python, in particular with the plotline function of reportlab, but I have some problems to add Xlabel and Ylabel, or better what the two axis represent, and the grid and legend.
Can someone could help me to solve this difficulty?
Here a part of the code which I implemented:
import reportlab
from reportlab.pdfgen import canvas
from reportlab.graphics import renderPDF
from reportlab.graphics.shapes import Drawing, _DrawingEditorMixin
from reportlab.graphics.charts.lineplots import LinePlot
from reportlab.graphics.charts.barcharts import VerticalBarChart
from reportlab.graphics.widgets.markers import makeMarker
from reportlab.graphics.charts.legends import LineLegend
from reportlab.graphics.samples.excelcolors import *
from reportlab.lib.validators import *
from reportlab.lib.colors import Color
from reportlab.graphics.charts.utils import *
from reportlab.graphics.charts.lineplots import GridLinePlot
from reportlab.graphics.charts.axes import XValueAxis, YValueAxis, AdjYValueAxis, NormalDateXValueAxis
from reportlab.graphics.charts.lineplots import GridLinePlot
from reportlab.lib.validators import Auto
from reportlab.graphics.charts.axes import NormalDateXValueAxis
...
def line_plot():
drawing = Drawing(500, 800)
lp1 = LinePlot()
lp1.x = 200
lp1.y = 550
lp1.height = 200
lp1.width = 200
lp1.data = Data
lp1.joinedLines = 1
lp1.lines[0].symbol = makeMarker('FilledCircle')
lp1.lines[1].symbol = makeMarker('Circle')
Data = [[[1,1], [2,2], [2.5,1], [3,3], [4,5]],[[1,2], [4,6]]]
lp1.xValueAxis.labelTextFormat = '%2.1f'
drawing.add(lp)
return drawing
the_canvas = canvas.Canvas("output.pdf")
the_canvas.drawString(100,750,"Welcome to Reportlab!")
renderPDF.draw(line_plot(), the_canvas, 10, 10)
the_canvas.showPage()
the_canvas.save()
Thank you really much
Denis
Can someone could help me to solve this difficulty?
Here a part of the code which I implemented:
import reportlab
from reportlab.pdfgen import canvas
from reportlab.graphics import renderPDF
from reportlab.graphics.shapes import Drawing, _DrawingEditorMixin
from reportlab.graphics.charts.lineplots import LinePlot
from reportlab.graphics.charts.barcharts import VerticalBarChart
from reportlab.graphics.widgets.markers import makeMarker
from reportlab.graphics.charts.legends import LineLegend
from reportlab.graphics.samples.excelcolors import *
from reportlab.lib.validators import *
from reportlab.lib.colors import Color
from reportlab.graphics.charts.utils import *
from reportlab.graphics.charts.lineplots import GridLinePlot
from reportlab.graphics.charts.axes import XValueAxis, YValueAxis, AdjYValueAxis, NormalDateXValueAxis
from reportlab.graphics.charts.lineplots import GridLinePlot
from reportlab.lib.validators import Auto
from reportlab.graphics.charts.axes import NormalDateXValueAxis
...
def line_plot():
drawing = Drawing(500, 800)
lp1 = LinePlot()
lp1.x = 200
lp1.y = 550
lp1.height = 200
lp1.width = 200
lp1.data = Data
lp1.joinedLines = 1
lp1.lines[0].symbol = makeMarker('FilledCircle')
lp1.lines[1].symbol = makeMarker('Circle')
Data = [[[1,1], [2,2], [2.5,1], [3,3], [4,5]],[[1,2], [4,6]]]
lp1.xValueAxis.labelTextFormat = '%2.1f'
drawing.add(lp)
return drawing
the_canvas = canvas.Canvas("output.pdf")
the_canvas.drawString(100,750,"Welcome to Reportlab!")
renderPDF.draw(line_plot(), the_canvas, 10, 10)
the_canvas.showPage()
the_canvas.save()
Thank you really much
Denis