OGeek|极客世界-中国程序员成长平台

标题: iOS Charts(Daniel Gindi) - 如何在 Swift 中设置双 y 轴双图形线 [打印本页]

作者: 菜鸟教程小白    时间: 2022-12-11 17:11
标题: iOS Charts(Daniel Gindi) - 如何在 Swift 中设置双 y 轴双图形线

我正在使用 Charts (Git Repo of Daniel Gindi's) .这是我的单 y 轴单折线图代码:当我尝试在 y 轴上添加第二条线时,它会抛出错误“无法将 'LineChartDataSet' 类型的值转换为预期的参数类型 'String'”

import UIKit
import Charts

class PulseController: UIViewController, ChartViewDelegate {

    @IBOutlet var lineChartView: LineChartView!

    override func viewDidLoad() {
        super.viewDidLoad()

        let months = ["Jan", "Feb", "Mar", "Apr", "May", "Jun"]
        let unitsSold = [20.0, 4.0, 6.0, 3.0, 12.0, 16.0]

        setChart(months, values: unitsSold)
    }

    func setChart(dataPoints: [String], values: [Double]) {

        var dataEntries: [ChartDataEntry] = []

        for i in 0..<dataPoints.count {
            let dataEntry = ChartDataEntry(value: values[i], xIndex: i)
            dataEntries.append(dataEntry)
        }

        let lineChartDataSet = LineChartDataSet(yVals: dataEntries, label: "ulse")
        let lineChartData = LineChartData(xVals: dataPoints, dataSet: lineChartDataSet)
        lineChartView.data = lineChartData

        lineChartView.animate(xAxisDuration: 2.0)
        lineChartView.animate(yAxisDuration: 2.5)

        lineChartDataSet.setCircleColor(UIColor.init(red: 14/255, green: 165/255, blue: 150/255, alpha: 1))

        lineChartDataSet.setColor(UIColor.init(red: 14/255, green: 165/255, blue: 150/255, alpha: 1))
    }
}



Best Answer-推荐答案


    @IBOutlet var lineChartView: LineChartView!


    override func viewDidLoad() {
        super.viewDidLoad()

        let months = ["Jan", "Feb", "Mar", "Apr", "May", "Jun"]
        let unitsSold1 = [20.0, 4.0, 6.0, 3.0, 12.0, 16.0]
        let unitsSold2 = [200.0, 400.0, 600.0, 300.0, 120.0, 160.0]

        setChart(months, values1: unitsSold1,values2:unitsSold2)

    }

    func setChart(dataPoints: [String], values1: [Double],values2:[Double]) 
    {

        var dataEntries1: [ChartDataEntry] = []
        var dataEntries2: [ChartDataEntry] = []

        for i in 0..<dataPoints.count 
        {
            let dataEntry1 = ChartDataEntry(value: values1[i], xIndex: i)
            dataEntries1.append(dataEntry1)
            let dataEntry2 = ChartDataEntry(value: values2[i], xIndex: i)
            dataEntries2.append(dataEntry2)

        }



        let lineChartDataSet1 = LineChartDataSet(yVals: dataEntries1, label: "ulse1")
        let lineChartDataSet2 = LineChartDataSet(yVals: dataEntries2, label: "ulse2")

        var lineChartDataSets :[String]
        lineChartDataSets.append(lineChartDataSet1)
        lineChartDataSets.append(lineChartDataSet2)

        let lineChartData = LineChartData(xVals: dataPoints, dataSet: lineChartDataSets)
        lineChartView.data = lineChartData


        lineChartView.animate(xAxisDuration: 2.0)
        lineChartView.animate(yAxisDuration: 2.5)

        lineChartDataSets.setCircleColor(UIColor.init(red: 14/255, green: 165/255, blue: 150/255, alpha: 1))

        lineChartDataSets.setColor(UIColor.init(red: 14/255, green: 165/255, blue: 150/255, alpha: 1))


    }

关于iOS Charts(Daniel Gindi) - 如何在 Swift 中设置双 y 轴双图形线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38786518/






欢迎光临 OGeek|极客世界-中国程序员成长平台 (http://ogeek.cn/) Powered by Discuz! X3.4