ios-charts 차트 표시 라이브러리 Xcode8 + Swift3

ios-charts는 iOS에서 그래프를 그리기 위한 라이브러리입니다.
htps : // 기주 b. 코 m/다니에 l 긴ぢ/짱 rts

Xcode8, Swift3에 해당하는 기사가 없었기 때문에 메모를 적습니다.

프로젝트 작성 절차



Xcode에서 적절하게 프로젝트를 만듭니다.
$ cd $(Your Xcode project)

Cartfile을 만듭니다. CocoaPods에서는 잘 할 수 없었습니다.
$ vi Cartfile

Cartfile
github "danielgindi/Charts" == 3.0.0
Carthage 를 실행합니다.
$ carthage update --platform iOS

Xcode에서 프로젝트 TARGETS를 선택하고 General > Linked Frameworks and Libraries에서 +를 클릭합니다.Add Other...를 클릭하고 $(Your Xcode project)/Carthage/Build/iOS 폴더에서 *.framework를 선택합니다.


Build Phases 에서 + 를 클릭하고 New Run Script Phase 를 선택합니다.
Shell 에 다음 명령을 설정하고 Input Filesframework 를 지정합니다.
/usr/local/bin/carthage copy-frameworks



이것으로 라이브러리 설정이 완료되었습니다.

그런 다음 스토리보드에서 UIView 를 배치합니다.
Custom ClassClassBarChartView , ModuleCharts 를 지정합니다.
아울렛을 만듭니다. 여기에 그래프를 그립니다.



ViewController에 다음 코드를 작성합니다.

ViewController.swift
//
//  ChartViewController.swift

import UIKit
import Charts

class ChartViewController: UIViewController {
    // ここに棒グラフを描きます
    @IBOutlet weak var myChartView: BarChartView!

    override func viewDidLoad() {
        super.viewDidLoad()
        // y軸のプロットデータ
        let unitsSold = [20.0, 4.0, 6.0, 3.0, 12.0, 16.0, 4.0, 18.0, 2.0, 4.0, 5.0, 4.0]

        setChart(y: unitsSold)
    }

    func setChart(y: [Double]) {
        // プロットデータ(y軸)を保持する配列
        var dataEntries = [BarChartDataEntry]()

        for (i, val) in y.enumerated() {
            let dataEntry = BarChartDataEntry(x: Double(i), y: val) // X軸データは、0,1,2,...
            dataEntries.append(dataEntry)
        }
        // グラフをUIViewにセット
        let chartDataSet = BarChartDataSet(values: dataEntries, label: "Units Sold")
        myChartView.data = BarChartData(dataSet: chartDataSet)

        // X軸のラベルを設定
        let xaxis = XAxis()
        xaxis.valueFormatter = BarChartFormatter()
        myChartView.xAxis.valueFormatter = xaxis.valueFormatter

        // x軸のラベルをボトムに表示
        myChartView.xAxis.labelPosition = .bottom
        // グラフの色
        chartDataSet.colors = [UIColor(red: 230/255, green: 126/255, blue: 34/255, alpha: 1)]
        // グラフの背景色
        myChartView.backgroundColor = UIColor(red: 189/255, green: 195/255, blue: 199/255, alpha: 1)
        // グラフの棒をニョキッとアニメーションさせる
        myChartView.animate(xAxisDuration: 2.0, yAxisDuration: 2.0)
        // 横に赤いボーダーラインを描く
        let ll = ChartLimitLine(limit: 10.0, label: "Target")
        myChartView.rightAxis.addLimitLine(ll)
        // グラフのタイトル
        myChartView.chartDescription?.text = "Cool Graph!"
    }
}

public class BarChartFormatter: NSObject, IAxisValueFormatter{
    // x軸のラベル
    var months: [String]! = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]

    // デリゲート。TableViewのcellForRowAtで、indexで渡されたセルをレンダリングするのに似てる。
    public func stringForValue(_ value: Double, axis: AxisBase?) -> String {
        // 0 -> Jan, 1 -> Feb...
        return months[Int(value)]
    }
}

실행 결과



좋은 웹페이지 즐겨찾기