123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119 |
- //
- // LineChartFilledViewController.swift
- // ChartsDemo-iOS
- //
- // Created by Jacob Christie on 2017-07-09.
- // Copyright © 2017 jc. All rights reserved.
- //
- #if canImport(UIKit)
- import UIKit
- #endif
- import Charts
- class LineChartFilledViewController: DemoBaseViewController {
- @IBOutlet var chartView: LineChartView!
- @IBOutlet var sliderX: UISlider!
- @IBOutlet var sliderY: UISlider!
- @IBOutlet var sliderTextX: UITextField!
- @IBOutlet var sliderTextY: UITextField!
-
- override func viewDidLoad() {
- super.viewDidLoad()
-
- // Do any additional setup after loading the view.
- self.title = "Filled Line Chart"
-
- chartView.delegate = self
-
- chartView.backgroundColor = .white
- chartView.gridBackgroundColor = UIColor(red: 51/255, green: 181/255, blue: 229/255, alpha: 150/255)
- chartView.drawGridBackgroundEnabled = true
-
- chartView.drawBordersEnabled = true
-
- chartView.chartDescription.enabled = false
-
- chartView.pinchZoomEnabled = false
- chartView.dragEnabled = true
- chartView.setScaleEnabled(true)
-
- chartView.legend.enabled = false
-
- chartView.xAxis.enabled = false
-
- let leftAxis = chartView.leftAxis
- leftAxis.axisMaximum = 900
- leftAxis.axisMinimum = -250
- leftAxis.drawAxisLineEnabled = false
-
- chartView.rightAxis.enabled = false
-
- sliderX.value = 100
- sliderY.value = 60
- slidersValueChanged(nil)
- }
-
- override func updateChartData() {
- if self.shouldHideData {
- chartView.data = nil
- return
- }
-
- self.setDataCount(Int(sliderX.value), range: UInt32(sliderY.value))
- }
-
- func setDataCount(_ count: Int, range: UInt32) {
- let yVals1 = (0..<count).map { (i) -> ChartDataEntry in
- let val = Double(arc4random_uniform(range) + 50)
- return ChartDataEntry(x: Double(i), y: val)
- }
- let yVals2 = (0..<count).map { (i) -> ChartDataEntry in
- let val = Double(arc4random_uniform(range) + 450)
- return ChartDataEntry(x: Double(i), y: val)
- }
-
- let set1 = LineChartDataSet(entries: yVals1, label: "DataSet 1")
- set1.axisDependency = .left
- set1.setColor(UIColor(red: 255/255, green: 241/255, blue: 46/255, alpha: 1))
- set1.drawCirclesEnabled = false
- set1.lineWidth = 2
- set1.circleRadius = 3
- set1.fillAlpha = 1
- set1.drawFilledEnabled = true
- set1.fillColor = .white
- set1.highlightColor = UIColor(red: 244/255, green: 117/255, blue: 117/255, alpha: 1)
- set1.drawCircleHoleEnabled = false
- set1.fillFormatter = DefaultFillFormatter { _,_ -> CGFloat in
- return CGFloat(self.chartView.leftAxis.axisMinimum)
- }
-
- let set2 = LineChartDataSet(entries: yVals2, label: "DataSet 2")
- set2.axisDependency = .left
- set2.setColor(UIColor(red: 255/255, green: 241/255, blue: 46/255, alpha: 1))
- set2.drawCirclesEnabled = false
- set2.lineWidth = 2
- set2.circleRadius = 3
- set2.fillAlpha = 1
- set2.drawFilledEnabled = true
- set2.fillColor = .white
- set2.highlightColor = UIColor(red: 244/255, green: 117/255, blue: 117/255, alpha: 1)
- set2.drawCircleHoleEnabled = false
- set2.fillFormatter = DefaultFillFormatter { _,_ -> CGFloat in
- return CGFloat(self.chartView.leftAxis.axisMaximum)
- }
- let data: LineChartData = [set1, set2]
- data.setDrawValues(false)
-
- chartView.data = data
- }
-
- @IBAction func slidersValueChanged(_ sender: Any?) {
- sliderTextX.text = "\(Int(sliderX.value))"
- sliderTextY.text = "\(Int(sliderY.value))"
-
- self.updateChartData()
- }
- }
|