[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
메서드를 사용하여 줄 단위로 텍스트를 추가하고 있습니다. fontName
과 fontSize
를 사용하여 폰트와 크기를 지정할 수 있습니다. textAnchor
는 텍스트의 위치를 지정합니다.
이렇게 생성한 String
객체를 chart
에 추가하면 그래프 위에 레이블이 표시됩니다.
결론
이제 ReportLab을 사용하여 그래프를 생성하고 레이블을 추가하는 방법을 알아보았습니다. ReportLab은 다양한 그래프 생성 기능을 제공하므로 PDF 문서를 생성하는 데 유용한 라이브러리입니다. 자세한 내용은 ReportLab 공식 문서를 참조하시기 바랍니다.