iOS开发Swift

Swift – 第三方图表库Charts使用详解19(烛形图)

import UIKit
import Charts
 
class ViewController: UIViewController {
     
    //烛形图
    var chartView: CandleStickChartView!
     
    override func viewDidLoad() {
        super.viewDidLoad()
         
        //创建烛形图组件对象
        chartView = CandleStickChartView()
        chartView.frame = CGRect(x: 20, y: 80, width: self.view.bounds.width - 40,
                                 height: 260)
        self.view.addSubview(chartView)
         
        //第一组烛形图的10条随机数据
        let dataEntries1 = (0..<10).map { (i) -> CandleChartDataEntry in
            let val = Double(arc4random_uniform(40) + 10)
            let high = Double(arc4random_uniform(9) + 8)
            let low = Double(arc4random_uniform(9) + 8)
            let open = Double(arc4random_uniform(6) + 1)
            let close = Double(arc4random_uniform(6) + 1)
            let even = arc4random_uniform(2) % 2 == 0 //true表示开盘价高于收盘价
            return CandleChartDataEntry(x: Double(i),
                                        shadowH: val + high,
                                        shadowL: val - low,
                                        open: even ? val + open : val - open,
                                        close: even ? val - close : val + close)
        }
        let chartDataSet1 = CandleChartDataSet(values: dataEntries1, label: "图例1")
         
        //目前烛形图包括1组数据
        let chartData = CandleChartData(dataSets: [chartDataSet1])
         
        //设置烛形图数据
        chartView.data = chartData
    }
}
//第一组烛形图的10条随机数据
let dataEntries1 = (0..<10).map { (i) -> CandleChartDataEntry in
    let val = Double(arc4random_uniform(40) + 10)
    let high = Double(arc4random_uniform(9) + 8)
    let low = Double(arc4random_uniform(9) + 8)
    let open = Double(arc4random_uniform(6) + 1)
    let close = Double(arc4random_uniform(6) + 1)
    let even = arc4random_uniform(2) % 2 == 0 //true表示开盘价高于收盘价
    //当天涨幅超过9的显示一个星星图标
    if(!even && (open + close) > 9 ){
        return CandleChartDataEntry(x: Double(i),
                                    shadowH: val + high,
                                    shadowL: val - low,
                                    open: even ? val + open : val - open,
                                    close: even ? val - close : val + close,
                                    icon: UIImage(named: "icon")!)
    }else{
        return CandleChartDataEntry(x: Double(i),
                                    shadowH: val + high,
                                    shadowL: val - low,
                                    open: even ? val + open : val - open,
                                    close: even ? val - close : val + close)
    }
 
}
let chartDataSet1 = CandleChartDataSet(values: dataEntries1, label: "图例1")