[swift] - Swift Charts로 공정 불량률 표시하기

이번 포스트에서는 Swift Charts를 사용하여 공정의 불량률을 시각화하는 방법을 알아보겠습니다. Swift Charts는 iOS 앱에서 다양한 유형의 차트를 쉽게 만들 수 있는 오픈 소스 라이브러리입니다. 우리는 이 라이브러리를 활용하여 바 형식의 차트를 만들어 공정 불량률을 표시할 것입니다.

Swift Charts 설치하기

Swift Charts를 사용하기 위해서는 먼저 프로젝트에 해당 라이브러리를 설치해야 합니다. 설치 방법은 아래와 같습니다:

  1. Podfile 파일을 열고, 다음 라인을 추가합니다:
pod 'Charts'
  1. 터미널을 열고, 프로젝트 디렉토리로 이동한 후 아래 명령어를 실행합니다:
pod install
  1. Xcode에서 .xcworkspace 파일을 엽니다.

불량률 데이터 준비하기

불량률 데이터를 표시하기 위해 예를 들어 5일 동안의 데이터를 준비해 보겠습니다. 데이터는 배열로 표현되며, 각 날짜에 대한 불량률 값을 가지고 있습니다.

let defectRateData = [2.5, 3.0, 1.8, 2.2, 2.7]
let dates = ["2021-01-01", "2021-01-02", "2021-01-03", "2021-01-04", "2021-01-05"]

바 형식의 차트 만들기

아래와 같이 바 형식의 차트를 생성하여 불량률 데이터를 시각화할 수 있습니다.

import Charts

class DefectRateViewController: UIViewController {

    @IBOutlet weak var barChartView: BarChartView!

    override func viewDidLoad() {
        super.viewDidLoad()

        // 차트 설정
        barChartView.drawBarShadowEnabled = false
        barChartView.drawValueAboveBarEnabled = true

        // 데이터 생성
        var entries: [BarChartDataEntry] = []
        for i in 0..<defectRateData.count {
            let entry = BarChartDataEntry(x: Double(i), y: defectRateData[i])
            entries.append(entry)
        }
        let dataSet = BarChartDataSet(entries: entries, label: "불량률")
        dataSet.colors = [.red]

        // 축 설정
        let xAxisValueFormatter = IndexAxisValueFormatter(values: dates)
        let xAxis = barChartView.xAxis
        xAxis.valueFormatter = xAxisValueFormatter

        // 차트에 데이터셋 설정
        let data = BarChartData(dataSet: dataSet)
        barChartView.data = data
    }
}

위 코드에서 barChartView는 스토리보드에서 생성한 바 형식의 차트 뷰입니다. defectRateData 배열은 앞에서 준비한 불량률 데이터를 가지고 있습니다. dates 배열은 각 날짜에 대한 라벨을 표시하기 위한 데이터입니다.

결과 확인하기

앱을 빌드하고 실행하면 바 형식의 차트를 통해 공정의 불량률이 표시되는 것을 확인할 수 있습니다. 바 형식의 차트는 각 날짜의 불량률 값을 세로로 표시하여 직관적으로 파악할 수 있도록 도와줍니다.

결론

Swift Charts를 사용하여 바 형식의 차트를 생성하여 공정의 불량률을 표시하는 방법에 대해 알아보았습니다. Swift Charts는 iOS 앱에서 다양한 차트를 쉽게 생성할 수 있는 강력한 도구입니다. 이를 통해 데이터를 시각화하여 사용자에게 직관적인 정보를 전달할 수 있습니다.