[python] ReportLab 그래프 라벨링

ReportLab은 파이썬에서 PDF 문서를 생성하기 위한 강력한 도구입니다. 이 글에서는 ReportLab을 사용하여 그래프를 생성하고 라벨을 추가하는 방법을 알아보겠습니다.

그래프 생성하기

먼저, ReportLab을 설치해야 합니다. 다음 명령을 사용하여 설치할 수 있습니다.

pip install reportlab

다음은 그래프를 생성하는 예제 코드입니다. 이 예제에서는 선 그래프를 생성하고 X축과 Y축 데이터를 지정합니다.

from reportlab.graphics.shapes import Drawing
from reportlab.graphics.charts.lineplots import LinePlot
from reportlab.lib import colors

data = [
    (0, 0), (1, 1), (2, 3), (3, 2), (4, 4)
]

drawing = Drawing(400, 200)
lp = LinePlot()
lp.x = 50
lp.y = 50
lp.width = 300
lp.height = 125
lp.data = [data]
lp.joinedLines = True
lp.lines[0].strokeColor = colors.blue

drawing.add(lp)

그래프에 라벨 추가하기

그래프에 라벨을 추가하려면 reportlab.graphics.charts.TextXValue 또는 reportlab.graphics.charts.TextYValue를 사용해야 합니다. 다음은 X축에 라벨을 추가하는 예제 코드입니다.

from reportlab.graphics.charts.textlabels import Label
from reportlab.graphics.charts.textlabels import LabelOffset

xlabels = [(0, '0'), (1, 'Jan'), (2, 'Feb'), (3, 'Mar'), (4, 'Apr')]

lp.xValueAxis.labels.boxAnchor = 'n'
lp.xValueAxis.labels.dx = 0
lp.xValueAxis.labels.dy = -20
lp.xValueAxis.labels.angle = 45
lp.xValueAxis.labels.fontName = 'Helvetica'
lp.xValueAxis.labels.fontSize = 10
lp.xValueAxis.labels.textAnchor = 'start'
lp.xValueAxis.forceEndDate = 1

for x, xlabel in xlabels:
    lp.xValueAxis.labels.add(Label(x=x, text=xlabel))

drawing.add(lp)

위 예제에서는 xlabels에 X축에 표시할 값과 라벨을 정의하고, lp.xValueAxis.labels.add(Label(x=x, text=xlabel))를 사용하여 각 라벨을 추가합니다.

라벨 스타일 및 위치를 조정하기 위해서는 lp.xValueAxis.labels의 속성을 설정해야 합니다. 위 예제에서는 박스 앵커를 ‘n’으로 설정하여 라벨 박스를 X축 위로 위치시키고, dx와 dy를 이용하여 위치를 조정합니다.

결론

위에서는 ReportLab을 사용하여 그래프를 생성하고 라벨을 추가하는 방법을 알아보았습니다. ReportLab을 사용하면 데이터 시각화 작업을 효과적으로 수행할 수 있습니다. ReportLab의 다양한 기능과 설정을 활용하면 더 다양한 그래프를 생성할 수 있습니다.