[swift] - Swift Charts로 박스 플롯 그리기

이번 글에서는 Swift Charts 라이브러리를 사용하여 박스 플롯(box plot)을 그리는 방법에 대해 알아보겠습니다. 박스 플롯은 데이터의 분포를 시각화하는 유용한 도구 중 하나로, 이상치(outlier)를 식별하거나 집단 간의 비교를 할 때 자주 사용됩니다.

Swift Charts 소개

Swift Charts는 Swift 언어로 개발된 iOS 앱에서 차트를 그리는 데 사용할 수 있는 강력한 오픈 소스 라이브러리입니다. 다양한 종류의 차트를 지원하며, 사용하기 쉽고 다양한 커스터마이징 옵션을 제공합니다.

설치

Swift Charts는 CocoaPods를 통해 설치할 수 있습니다. 먼저 Podfile을 열고 다음과 같이 pod 'Charts'를 추가하세요.

platform :ios, '12.0'

target 'YourApp' do
  use_frameworks!
  pod 'Charts'
end

터미널에서 프로젝트 디렉토리로 이동한 다음 pod install 명령을 실행하여 패키지를 설치합니다.

박스 플롯 그리기

먼저, Charts 모듈을 import 하고 박스 플롯을 그릴 BarChartView를 생성합니다.

import Charts

// ...

let chartView = BarChartView(frame: CGRect(x: 0, y: 0, width: view.frame.width, height: view.frame.height))

다음으로, 데이터를 생성합니다. 박스 플롯은 여러 집단 간의 분포를 비교하기 위해 사용되므로, 각 집단의 데이터를 배열로 저장합니다.

let group1Data: [Double] = [1.5, 2.5, 3, 4, 5, 6, 7, 10]
let group2Data: [Double] = [0.5, 1, 2, 3, 4, 5.5, 6.5, 9, 11]
let group3Data: [Double] = [1, 2, 4.5, 5, 7, 8, 9, 9.5, 10.5]
let group4Data: [Double] = [2, 3, 4, 5, 6, 7.5, 8, 8.5, 9]

이제 데이터를 BarChartDataEntry로 변환한 다음, 데이터 집합을 생성합니다.

var entries: [BarChartDataEntry] = []

for index in 0..<group1Data.count {
    let dataEntry = BarChartDataEntry(x: Double(index), yValues: [group1Data[index], group2Data[index], group3Data[index], group4Data[index]])
    entries.append(dataEntry)
}

let dataSet = BarChartDataSet(entries: entries, label: "Box Plot")
let data = BarChartData(dataSet: dataSet)
chartView.data = data

마지막으로, 박스 플롯의 모양과 색상을 커스터마이즈하고, 그래프를 업데이트합니다.

// 박스 색상 설정
dataSet.colors = [.red, .blue, .green, .orange]

// 박스 외곽선 스타일 설정
dataSet.outlineColor = .black
dataSet.outlineLineWidth = 1.0

// 박스의 높이 설정
dataSet.barWidth = 0.3

// X 축 값 설정
chartView.xAxis.valueFormatter = IndexAxisValueFormatter(values: ["1", "2", "3", "4", "5", "6", "7", "8", "9"])

// 그래프 업데이트
chartView.notifyDataSetChanged()

이제 앱을 실행하면 박스 플롯이 그려진 차트를 확인할 수 있습니다. 필요에 따라 다양한 그래프 커스터마이징 옵션을 시도해보세요!

결론

이번 글에서는 Swift Charts를 사용하여 박스 플롯을 그리는 방법에 대해 알아보았습니다. 박스 플롯은 데이터의 분포를 잘 시각화하여 이상치를 파악하거나 집단 간의 비교를 수행하는 데 유용한 도구입니다. Swift Charts를 사용하면 간단하게 박스 플롯을 그려낼 수 있으며, 다양한 커스터마이징 옵션을 통해 더 멋진 차트를 구현할 수 있습니다.

더 자세한 사용법은 Swift Charts GitHub 페이지를 참조하시기 바랍니다.