iOS开发Swift

Swift – 第三方图表库Charts使用详解3(折线图2:线条、拐点的样式设置)

import UIKit
import Charts
 
class ViewController: UIViewController {
     
    //折线图
    var chartView: LineChartView!
     
    override func viewDidLoad() {
        super.viewDidLoad()
         
        //创建折线图组件对象
        chartView = LineChartView()
        chartView.frame = CGRect(x: 20, y: 80, width: self.view.bounds.width - 40,
                                 height: 270)
        self.view.addSubview(chartView)
         
        //生成10条随机数据
        var dataEntries = [ChartDataEntry]()
        for i in 0..<10 {
            let y = arc4random()%100
            let entry = ChartDataEntry.init(x: Double(i), y: Double(y))
            dataEntries.append(entry)
        }
        //这10条数据作为1根折线里的所有数据
        let chartDataSet = LineChartDataSet(values: dataEntries, label: "图例1")
        //将线条颜色设置为橙色
        chartDataSet.colors = [.orange]
        //修改线条大小
        chartDataSet.lineWidth = 2
        //目前折线图只包括1根折线
        let chartData = LineChartData(dataSets: [chartDataSet])
         
        //设置折现图数据
        chartView.data = chartData
    }
}
//开启填充色绘制
chartDataSet.drawFilledEnabled = true
//渐变颜色数组
let gradientColors = [UIColor.orange.cgColor, UIColor.white.cgColor] as CFArray
//每组颜色所在位置(范围0~1)
let colorLocations:[CGFloat] = [1.0, 0.0]
//生成渐变色
let gradient = CGGradient.init(colorsSpace: CGColorSpaceCreateDeviceRGB(),
                               colors: gradientColors, locations: colorLocations)
//将渐变色作为填充对象s
chartDataSet.fill = Fill.fillWithLinearGradient(gradient!, angle: 90.0)
import UIKit
import Charts
 
class ViewController: UIViewController {
     
    //折线图
    var chartView: LineChartView!
     
    override func viewDidLoad() {
        super.viewDidLoad()
         
        //创建折线图组件对象
        chartView = LineChartView()
        chartView.frame = CGRect(x: 20, y: 80, width: self.view.bounds.width - 40,
                                 height: 250)
        //半透明蓝色背景
        chartView.gridBackgroundColor = UIColor(red: 51/255, green: 181/255, blue: 229/255,
                                                alpha: 150/255)
        chartView.drawGridBackgroundEnabled = true
 
        self.view.addSubview(chartView)
         
        //生成第一根折线的数据
        var dataEntries1 = [ChartDataEntry]()
        for i in 0..<20 {
            let y = arc4random()%10 + 20
            let entry = ChartDataEntry.init(x: Double(i), y: Double(y))
            dataEntries1.append(entry)
        }
        let chartDataSet1 = LineChartDataSet(values: dataEntries1, label: "最高温度")
        chartDataSet1.drawCirclesEnabled = false
        chartDataSet1.fillAlpha = 1
        chartDataSet1.drawFilledEnabled = true
        chartDataSet1.fillColor = .white
        chartDataSet1.lineWidth = 2
        chartDataSet1.drawValuesEnabled = false //不绘制拐点上的文字
        chartDataSet1.fillFormatter = DefaultFillFormatter { _,_  -> CGFloat in
            return CGFloat(self.chartView.leftAxis.axisMaximum) //向上绘制填充区域
        }
         
        //生成二根折线的数据
        var dataEntries2 = [ChartDataEntry]()
        for i in 0..<20 {
            let y = arc4random()%10
            let entry = ChartDataEntry.init(x: Double(i), y: Double(y))
            dataEntries2.append(entry)
        }
        let chartDataSet2 = LineChartDataSet(values: dataEntries2, label: "最低温度")
        chartDataSet2.colors = [.green]
        chartDataSet2.drawCirclesEnabled = false
        chartDataSet2.fillAlpha = 1
        chartDataSet2.drawFilledEnabled = true
        chartDataSet2.fillColor = .white
        chartDataSet2.lineWidth = 2
        chartDataSet2.drawValuesEnabled = false //不绘制拐点上的文字
        chartDataSet2.fillFormatter = DefaultFillFormatter { _,_  -> CGFloat in
            return CGFloat(self.chartView.leftAxis.axisMinimum) //向下绘制填充区域
        }
 
        //目前折线图只包括2根折线
        let chartData = LineChartData(dataSets: [chartDataSet1, chartDataSet2])
         
        //设置折现图数据
        chartView.data = chartData
    }
}

转载于:https://www.hangge.com/blog/cache/detail_2118.html