iOS-图表空数据点不显示在图表上

iOS-Charts null data point do not show on chart

就像 iOS 8 上的健康应用程序,其中 null/empty 数据点不显示,而 X 轴标签仍然存在。使用 iOS-Charts 作为我项目的图表库是否可以实现相同的目标?

可以使用iOS-图表来实现。我目前正在制作一个需要各种多折线图、多条形图和折线图的项目。即使我有空值,X 轴标签仍然存在。有什么不懂的可以问我

你不应该传递 nil,它不接受 nil,Xcode 会对此发出警告。你应该做的,就是不通过。

您不必为每个 x 索引传递 y 值。您只需确保 y 值根据 x 索引排序。

这是我根据 daniel.gindi 的回答编写的一个函数(我将 NaN 传递给值数组中为空的条目):

func populateLineChartView(lineChartView: LineChartView, labels: [String], values: [Float]) {
    var dataEntries: [ChartDataEntry] = []

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

    let lineChartDataSet = LineChartDataSet(yVals: dataEntries, label: "Label")
    let lineChartData = LineChartData(xVals: labels, dataSet: lineChartDataSet)
    lineChartView.data = lineChartData
}

您可以使用轴最大值,因此即使您没有针对该事件的 ChartDataEntry,它仍会显示

   chartView.xAxis.axisMaximum = 60
   chartView.xAxis.axisMaximum = 90

丹尼尔提到的最简单的答案就是不传递 y 值。最初我也很困惑,因为所有函数都需要 x 和 y。这个方法就是我做的

var dataEntries = [ChartDataEntry]()

for (iterating a source array){

   let entry =  ChartDataEntry()

   if (some condition to check yValue exists) {
                                            
       entry.x = xValue
       entry.y = yValue
   }
   else
   {
       entry.x = xValue
   }
                
   dataEntries.append(entry)
}