[python] ReportLab 그래프 스타일링

ReportLab은 Python에서 PDF 문서를 생성하기 위한 강력한 도구입니다. 그래프를 포함하는 PDF 문서를 만들기 위해 ReportLab을 사용하는 경우, 그래프를 스타일링하여 보다 효과적으로 시각화할 수 있습니다. 이번 블로그 포스트에서는 ReportLab 그래프의 스타일링에 대해 알아보겠습니다.

그래프 스타일링 기본

ReportLab에서 그래프를 그리기 위해서는 DrawingGraph 모듈을 사용합니다. Drawing 객체는 그래프 및 다른 그래픽 요소를 포함하는 컨테이너 역할을 합니다. Graph 객체는 그래프의 종류와 데이터를 정의하는 데 사용됩니다.

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

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

d = Drawing(400, 200)
lp = LinePlot()
lp.x = 50
lp.y = 50
lp.width = 300
lp.height = 125
lp.data = [data]
lp.lineColors = [colors.blue]
lp.lines[0].symbol = 'circle'
lp.lines[0].strokeColor = colors.red

d.add(lp)

위의 예제에서는 ReportLab의 그래프 스타일링을 위해 몇 가지 기본 속성을 설정했습니다. lp.lineColors 속성을 사용하여 그래프의 선 색상을 지정하고 lp.lines[0].symbol 속성을 사용하여 데이터 포인트의 모양을 지정했습니다. 또한 lp.lines[0].strokeColor 속성을 사용하여 데이터 포인트의 선 색상을 따로 설정했습니다.

추가 스타일링 옵션

그래프를 더욱 스타일링하기 위해 ReportLab에서는 다양한 옵션을 제공합니다. 몇 가지 유용한 옵션을 살펴보겠습니다.

그래프 배경 색상

그래프의 배경 색상을 변경하려면 lp.fillColor 속성을 사용합니다.

lp.fillColor = colors.lightgrey

그래프 축 스타일

그래프의 축 스타일을 변경하려면 lp.xAxislp.yAxis 속성을 사용합니다. 예를 들어, 축의 라벨 색상을 변경하려면 다음과 같이 설정할 수 있습니다.

lp.xAxis.labels.fontName = 'Helvetica'
lp.xAxis.labels.fontSize = 14
lp.xAxis.labels.fillColor = colors.black
lp.yAxis.labels.fontName = 'Helvetica'
lp.yAxis.labels.fontSize = 14
lp.yAxis.labels.fillColor = colors.black

데이터 레이블

각 데이터 포인트에 레이블을 추가하려면 lp.lines[0].name 속성을 사용합니다. 이를 위해 reportlab.graphics.charts.textlabels 모듈의 Label 클래스를 사용할 수 있습니다.

from reportlab.graphics.charts.textlabels import Label

name_label = Label()
name_label.setOrigin(130, 140)
name_label.boxAnchor = 'e'
name_label.boxFillColor = colors.lightgrey
name_label.setText('Data Points')
d.add(name_label)

위의 예제에서는 데이터 포인트에 대한 레이블을 추가하기 위해 Label 클래스를 사용하고 있습니다.

결론

ReportLab 그래프를 스타일링하여 정보를 효과적으로 시각화하는 것은 매우 중요합니다. 이번 포스트에서는 ReportLab을 사용한 그래프 스타일링에 대해 알아보았습니다. ReportLab의 다양한 스타일링 옵션을 사용하여 원하는 그래프 디자인을 만들 수 있습니다. 추가로 문서를 참조하여 더 많은 스타일링 옵션을 확인해보세요.