[swift] Swift Charts에서 차트 데이터 축 티커 설정하기

Swift Charts는 iOS 앱에서 간편하게 차트를 생성하고 표시할 수 있는 유명한 라이브러리입니다. 이 라이브러리를 사용하면 다양한 종류의 차트를 만들 수 있으며, 그래프의 축 티커를 사용자 정의하는 것도 가능합니다.

이 포스트에서는 Swift Charts를 사용하여 차트의 축 티커를 설정하는 방법을 알아보겠습니다.

1. 축 티커 생성하기

먼저, Swift Charts에서 축 티커를 생성해야 합니다. 축 티커는 TickGenerator 객체를 사용하여 생성할 수 있습니다. TickGenerator는 티커 위치와 레이블을 정의하는 방법을 제공합니다.

다음은 TickGenerator를 사용하여 y 축 티커를 생성하는 예제 코드입니다.

let yTickCount = 5 // 티커 갯수
let yValues: [Float] = [0, 20, 40, 60, 80] // 티커 값

let yModel = ChartAxisModel(tickGenerator: { (min, max) -> [ChartAxisValue] in
    let step = (max - min) / Float(yTickCount - 1)
    let generator = ChartAxisGeneratorMultiplier(step)
    return generator.generate(min: ChartAxisValueFloat(min), max: ChartAxisValueFloat(max))
}, tickDrawer: ChartAxisTickDrawerTickLines(), axisValuesGenerator: ChartAxisGeneratorMultiplier() )

let yAxis = ChartAxisModel(axisValues: yValues.map { ChartAxisValueFloat($0) }, axisTitleLabels: [], axisLabelDrawer: ChartAxisLabelDrawerDefault(), axisLineStyle: ChartLineStyle(), axisTitleLabel: ChartAxisLabel(text: "", settings: ChartLabelSettings()))

위 코드에서 yValues 배열에는 티커의 값들을 정의합니다. yTickCount 변수는 티커의 갯수를 나타냅니다. 이 예제에서는 0부터 80까지 총 5개의 티커를 생성하도록 설정되어 있습니다.

2. 차트에 축 티커 적용하기

차트를 생성하고 축 티커를 적용하기 위해 ChartCoordsChartAxisLayer 객체를 사용합니다. ChartCoords는 차트의 좌표계를 설정하고 ChartAxisLayer는 축 티커를 그리는 역할을 합니다.

다음은 ChartCoordsChartAxisLayer를 사용하여 차트에 y 축 티커를 적용하는 예제 코드입니다.

let chartFrame = CGRect(x: 0, y: 0, width: 200, height: 200)
let chartSettings = ChartSettings()

let chartCoords = ChartCoords(rect: chartFrame, chartSettings: chartSettings, x: xAxis, y: yAxis)
let chart = Chart(frame: chartFrame, innerFrame: chartFrame, settings: chartSettings, coords: chartCoords)

let chartPoints = [ChartPoint(x: ChartAxisValueString("A", order: -1), y: ChartAxisValueFloat(50)),
                   ChartPoint(x: ChartAxisValueString("B", order: -1), y: ChartAxisValueFloat(30)),
                   ChartPoint(x: ChartAxisValueString("C", order: -1), y: ChartAxisValueFloat(70))]

let lineModel = ChartLineModel(chartPoints: chartPoints, lineColor: UIColor.blue, lineWidth: 2, animDuration: 0.5, animDelay: 0)
let chartLine = ChartLineLayer(xAxis: xAxis, yAxis: yAxis, lineModels: [lineModel])

let axisLayer = ChartAxisLayer(xAxis: xAxis, yAxis: yAxis, innerFrame: chartCoords.innerFrame, chartSettings: chartSettings)

chart.add(chartLine)
chart.add(axisLayer)

self.view.addSubview(chart.view)

위 코드에서 chartPoints 배열에는 차트에 표시할 데이터의 값을 정의합니다. 이 예제에서는 라인 차트를 생성하며, “A”, “B”, “C”를 x 축 값으로, 50, 30, 70을 y 축 값으로 설정하였습니다.

마지막으로 chart.add() 메서드를 사용하여 ChartLineLayerChartAxisLayer를 차트에 추가하고, self.view.addSubview() 메서드를 사용하여 차트 뷰를 화면에 표시합니다.

결론

Swift Charts를 사용하여 iOS 앱에서 차트를 생성하고 표시할 때, 축 티커를 사용자 정의하는 것이 가능합니다. 이번 포스트에서는 축 티커를 생성하고 차트에 적용하는 방법을 알아보았습니다.