[python] ReportLab 그래프 레이블링

ReportLab은 파이썬에서 PDF 문서를 생성하는 라이브러리입니다. 이 라이브러리를 사용하여 그래프를 생성하고 레이블을 지정하는 방법을 알아보겠습니다.

그래프 생성하기

먼저 ReportLab을 설치해야 합니다. 아래의 명령어를 사용하여 설치할 수 있습니다.

pip install reportlab

다음은 ReportLab을 사용하여 그래프를 생성하는 예제 코드입니다.

from reportlab.lib import colors
from reportlab.graphics.shapes import Drawing, String
from reportlab.graphics.charts.barcharts import HorizontalBarChart

data = [(10, 'A'), (20, 'B'), (15, 'C'), (5, 'D')]

chart = HorizontalBarChart()
chart.x = 50
chart.y = 50
chart.height = 200
chart.width = 400
chart.valueAxis.valueMin = 0
chart.valueAxis.valueMax = 30
chart.categoryAxis.categoryNames = [item[1] for item in data]

plotdata = [(item[0],) for item in data]
chart.data = plotdata

chart.bars[0].fillColor = colors.red
chart.bars[1].fillColor = colors.orange
chart.bars[2].fillColor = colors.yellow
chart.bars[3].fillColor = colors.green

drawing = Drawing(500, 300)
drawing.add(chart)

drawing.save(formats=['pdf'], outfilename='graph.pdf')

위의 코드는 수평 막대 그래프를 생성하고 색상을 지정하는 예제입니다. data 리스트에는 각 막대의 값과 레이블이 포함되어 있습니다. fillColor 속성을 사용하여 각 막대의 색상을 지정할 수 있습니다.

그래프에 레이블 추가하기

이제 그래프에 레이블을 추가해보겠습니다. ReportLab에서 제공하는 String 객체를 사용하여 그래프에 텍스트 레이블을 추가할 수 있습니다.

label = String(0, 0, "레이블", fontName="Helvetica", fontSize=12, textAnchor="start")
label.nextTextLine('라인 1')
label.nextTextLine('라인 2')
label.nextTextLine('라인 3')
chart.add(label)

위의 코드에서는 String 객체를 생성한 후 nextTextLine 메서드를 사용하여 줄 단위로 텍스트를 추가하고 있습니다. fontNamefontSize를 사용하여 폰트와 크기를 지정할 수 있습니다. textAnchor는 텍스트의 위치를 지정합니다.

이렇게 생성한 String 객체를 chart에 추가하면 그래프 위에 레이블이 표시됩니다.

결론

이제 ReportLab을 사용하여 그래프를 생성하고 레이블을 추가하는 방법을 알아보았습니다. ReportLab은 다양한 그래프 생성 기능을 제공하므로 PDF 문서를 생성하는 데 유용한 라이브러리입니다. 자세한 내용은 ReportLab 공식 문서를 참조하시기 바랍니다.