[swift] - Swift Charts로 식중독 사례 시각화하기

식중독은 많은 사람들이 경험하는 건강 문제 중 하나입니다. 이러한 식중독 사례를 시각화하여 데이터를 눈으로 확인 할 수 있으면, 식품 안전 및 위생에 대한 관심을 높일 수 있을 것입니다. 이번 블로그 포스트에서는 Swift Charts 라이브러리를 사용하여 식중독 사례를 시각화하는 방법을 알아보겠습니다.

Swift Charts 소개

Swift Charts는 iOS 프로젝트에서 그래프 및 차트를 만들기 위한 라이브러리입니다. 이 라이브러리는 다양한 유형의 차트를 지원하며, 간단한 API 덕분에 사용하기 쉽습니다. Swift Charts는 CocoaPods를 통해 쉽게 프로젝트에 추가할 수 있습니다.

프로젝트 설정

먼저, 프로젝트에 Swift Charts를 추가하기 위해 CocoaPods를 사용해보겠습니다. 프로젝트 디렉토리에서 Podfile을 열고 다음 라인을 추가합니다.

pod 'Charts'

터미널에서 pod install 명령어를 실행하여 Swift Charts를 프로젝트에 설치합니다.

데이터 준비

식중독 사례를 시각화하기 위해, 시간에 따른 환자 수 데이터를 준비해야 합니다. 이 예제에서는 다음과 같은 형식의 CSV 파일을 사용합니다.

Date,Patients
2021-01-01,10
2021-01-02,16
2021-01-03,22
2021-01-04,30

CSV 파일을 프로젝트에 추가하고, 데이터를 로드하는 함수를 작성해보겠습니다.

import Foundation

struct Case {
    let date: String
    let patients: Int
}

func loadCasesFromCSV() -> [Case] {
    do {
        if let path = Bundle.main.path(forResource: "cases", ofType: "csv") {
            let data = try String(contentsOfFile: path, encoding: .utf8)
            let rows = data.components(separatedBy: "\n")
            var cases: [Case] = []
            for row in rows {
                let columns = row.components(separatedBy: ",")
                if columns.count == 2 {
                    let date = columns[0]
                    let patients = Int(columns[1]) ?? 0
                    let case = Case(date: date, patients: patients)
                    cases.append(case)
                }
            }
            return cases
        }
    } catch {
        print("Error loading cases: \(error)")
    }
    return []
}

차트 생성

이제 데이터를 로드하고, 차트를 생성하는 코드를 작성해보겠습니다.

import UIKit
import Charts

class ViewController: UIViewController {

    @IBOutlet weak var chartView: LineChartView!

    override func viewDidLoad() {
        super.viewDidLoad()
        
        let cases = loadCasesFromCSV()

        var entries: [ChartDataEntry] = []
        for i in 0..<cases.count {
            let caseData = cases[i]
            let entry = ChartDataEntry(x: Double(i), y: Double(caseData.patients))
            entries.append(entry)
        }

        let dataSet = LineChartDataSet(entries: entries, label: "Patients")
        let data = LineChartData(dataSet: dataSet)

        chartView.data = data
    }
}

이 예제에서는 LineChartView를 사용하여 시간에 따른 환자 수를 보여주는 라인 차트를 생성했습니다. loadCasesFromCSV 함수를 호출하여 데이터를 가져오고, ChartDataEntry를 사용하여 데이터를 차트에 추가합니다. 마지막으로, LineChartView의 data 속성을 설정하여 차트를 표시합니다.

결과 확인

앱을 실행하여 결과를 확인해보세요. 시간에 따른 환자 수를 시각적으로 확인할 수 있을 것입니다.

이번에는 Swift Charts를 사용하여 식중독 사례를 시각화하는 방법을 알아보았습니다. Swift Charts 라이브러리의 다양한 기능을 활용해서 다양한 차트를 만들어보세요. 식중독 사례 시각화를 통해 식품 안전 및 위생에 대한 관심을 높이는 데 도움이 될 것입니다.

참고 자료