ioschart没有显示折线图

时间:2018-02-20 08:29:25

标签: ios swift ios-charts

我在使用ioschart库显示简单的折线图时遇到了问题。

我按照this教程进行操作。

当我尝试将数据放在图表上时,它会正确显示轴上的网格和值,但不会显示该行。

这是我的代码:

func setChartData(xLabel: [Double], yLabel: [Double]){

    let values = (0..<15).map { (i) -> ChartDataEntry in
        return ChartDataEntry(x: xLabel[i], y: yLabel[i])
    }

    let set1 = LineChartDataSet(values: values, label: "DataSet")
    let data = LineChartData(dataSet: set1)

    self.lineChartView.data = data

}

然后,在viewDidLoad()我调用我的函数并将它传递给这两个列表:

let x = [19.0, 18.0, 17.0, 16.0, 15.0, 14.0, 13.0, 12.0, 11.0, 10.0, 9.0, 8.0, 7.0, 6.0, 5.0]

let y = [1.5587, 1.5591999999999999, 1.5587, 1.5587, 1.5604, 1.5528, 1.5544, 1.5427, 1.5475000000000001, 1.5475000000000001, 1.5475000000000001, 1.5402, 1.5488, 1.5445, 1.5468]

我获得的结果是这样的: enter image description here

3 个答案:

答案 0 :(得分:1)

只需在 ViewDidLoad 中用

替换您的'x'声明
if (typeof(jsonObject) === "object") {
    var innerObject = jsonObject;
    for (var innerkey in innerObject ) {
        //Do stuff..
    }
}

我希望它对你有用。

答案 1 :(得分:1)

为了查看结果,x列表应以升序顺序显示。

就我而言,应该是:

let x = [5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0]

答案 2 :(得分:0)

试试这个:

func draw() {

    let x = [19.0, 18.0, 17.0, 16.0, 15.0, 14.0, 13.0, 12.0, 11.0, 10.0, 9.0, 8.0, 7.0, 6.0, 5.0]

    let y = [1.5587, 1.5591999999999999, 1.5587, 1.5587, 1.5604, 1.5528, 1.5544, 1.5427, 1.5475000000000001, 1.5475000000000001, 1.5475000000000001, 1.5402, 1.5488, 1.5445, 1.5468]

    var lineChartEntry = [ChartDataEntry]()

             for i in 0..<y.count {
               let value = ChartDataEntry(x: x[i], y: y[i])
               lineChartEntry.append(value)

        }

        let line1 = LineChartDataSet(values: lineChartEntry, label: "Data")
        line1.axisDependency = .left

        let data = LineChartData()
        data.addDataSet(line1)
        self.lineChartView.data = data

}