[python] ReportLab 차트 범례 스타일링

ReportLab은 Python에서 PDF 및 그래픽을 생성하는 데 사용되는 강력한 라이브러리입니다. ReportLab을 사용하면 차트를 만들고 스타일링할 수 있습니다. 이번 블로그 포스트에서는 ReportLab을 사용하여 차트 범례를 스타일링하는 방법을 알아보겠습니다.

차트 생성하기

먼저 ReportLab의 SimpleDocTemplate 클래스를 사용하여 PDF 문서를 만들고 그 안에 차트를 추가하는 코드를 작성해보겠습니다.

from reportlab.lib.pagesizes import letter
from reportlab.platypus import SimpleDocTemplate
from reportlab.lib import colors
from reportlab.graphics.shapes import Drawing
from reportlab.graphics.charts.lineplots import LinePlot
from reportlab.graphics.widgets.markers import makeMarker
from reportlab.graphics import renderPDF

data = [
    (1, 3, 5, 7, 9),
    (2, 5, 8, 11, 14),
    (3, 6, 9, 12, 15),
    (1, 2, 3, 4, 5),
    (6, 7, 8, 9, 10),
]

drawing = Drawing(400, 200)
lp = LinePlot()
lp.width = 300
lp.height = 150
lp.data = data
lp.joinedLines = True

drawing.add(lp)

doc = SimpleDocTemplate("chart.pdf", pagesize=letter)

story = []
story.append(drawing)

doc.build(story)

이 코드는 간단한 선 플롯 차트를 생성하여 chart.pdf라는 파일로 저장합니다. 이제 이 차트에 범례를 추가해보겠습니다.

범례 스타일링하기

범례를 스타일링하려면 Drawingadd() 메서드를 사용하여 차트 객체와 함께 범례를 추가해야 합니다. 범례 객체에는 스타일을 지정할 수 있는 여러 속성이 있습니다.

from reportlab.graphics.charts.legend import Legend

legend = Legend()
legend.columnMaximum = 1
legend.x = 65
legend.y = 180
legend.dxTextSpace = 10
legend.dy = 10
legend.dx = 10
legend.fontName = "Helvetica"
legend.fontSize = 8
legend.alignment = "right"
legend.deltax = 75
legend.boxAnchor = 'n'
legend.subCols.minWidth = 65

drawing.add(legend)

위의 코드에서는 Legend 객체를 만든 후 원하는 스타일을 지정합니다. xy 속성은 범례의 위치를 조정하고, fontNamefontSize 속성은 텍스트 스타일을 변경합니다.

범례를 차트에 추가한 후 build() 메서드를 호출하여 PDF 문서를 생성합니다. 이제 실행하여 결과를 확인해보세요.

결론

ReportLab을 사용하면 Python으로 다양한 종류의 차트를 만들 수 있습니다. 이번 포스트에서는 ReportLab을 사용하여 차트 범례를 스타일링하는 방법을 알아보았습니다. ReportLab의 다른 기능과 옵션을 사용하여 더욱 다양하고 멋진 차트를 만들어보세요.

참고 자료