iOS图表(Daniel Gindi) - 如何在Swift中设置双y轴双图线

问题描述 投票:2回答:2

我正在使用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: "Pulse")
        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))
    }
}
ios swift charts ios-charts
2个回答
0
投票
    @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: "Pulse1")
        let lineChartDataSet2 = LineChartDataSet(yVals: dataEntries2, label: "Pulse2")

        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))


    }

0
投票

只需添加以下行:

lineChartView.rightAxis.enabled = false
lineChartView.xAxis.drawGridLinesEnabled = true
© www.soinside.com 2019 - 2024. All rights reserved.