当我试图用不同数量的数据点在同一个图表上放置两行时,iOS图表出现问题。我已将测试代码粘贴到下面。

    testLineChartView.delegate = self
    testLineChartView.xAxis.enabled = true
    testLineChartView.xAxis.labelPosition = .Bottom
    testLineChartView.rightAxis.drawLabelsEnabled = false

    var allLineChartDataSets: [LineChartDataSet] = [LineChartDataSet]()

    var dataEntries: [ChartDataEntry] = []
    let dataPoints = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul"]
    let values = [18.0, 4.0, 6.0, 3.0, 12.0, 16.0, 30]
    for i in 0..<dataPoints.count {
        let dataEntry = ChartDataEntry(value: values[i], xIndex: i)
        dataEntries.append(dataEntry)
        println(dataPoints[i])
    }

    let lineChartDataSet1: LineChartDataSet = LineChartDataSet(yVals: dataEntries, label: "Temperature")
    allLineChartDataSets.append(lineChartDataSet1)


    var dataEntries2: [ChartDataEntry] = []
    let dataPoints2 = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Aug"]
    let values2 = [21.0, 5.0, 7.0, 10.0, 11.0, 18.0, 20]
    for i in 0..<dataPoints2.count {
        let dataEntry2 = ChartDataEntry(value: values2[i], xIndex: i)
        dataEntries2.append(dataEntry2)
        println(dataPoints2[i])
    }

    let lineChartDataSet2 = LineChartDataSet(yVals: dataEntries2, label: "Units Sold")
    lineChartDataSet2.setColor(UIColor.redColor())
    lineChartDataSet2.setCircleColor(UIColor.redColor())
    allLineChartDataSets.append(lineChartDataSet2)

    let allDataPoints: [String] = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug"]

     let lineChartData = LineChartData(xVals: allDataPoints, dataSets: allLineChartDataSets)

    testLineChartView.data = lineChartData

下面是生成的图表:
xcode - 一个图表上具有不同点数的多个数据集(iOS-Charts)-LMLPHP
如您所见,dataset2的八月条目显示为七月。我试图为dataset2的七月值添加一个额外的零值,但这不起作用。如何正确显示此内容?

最佳答案

你误解了它的工作原理。每个xindex都有自己的值,称为dataentry。您首先创建两个由7个值组成的系列,但最后放大了xaxis。iOS图表使用xindex跟踪它应该在哪里绘制值,而不是标签。8月和7月标签都在xindex:6,在您的数据集中。这就是为什么你会看到它们都是7月画的,因为新德克斯是6。
你应该做的是首先创建x值
let allDataPoints: [String] = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug"]表示我有8个x值,而不是7个,
然后用它们的xindex值插入您的值,如果它在特定的xindex没有值就忽略它,继续下一个。不要按建议插入零值。
例如,对于数据
let values2 = [21.0, 5.0, 7.0, 10.0, 11.0, 18.0, 20](其中有aug数据,但没有jul数据)
创建数据项时,每个值的xindex应为[0,1,2,3,4,5,7],而不是[0,1,2,3,4,5,6]。

关于xcode - 一个图表上具有不同点数的多个数据集(iOS-Charts),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32428637/

10-09 16:25
查看更多