0

就像 iOS 8 上的 Health 应用程序一样,当 X 轴标签仍然存在时,不会显示空/空数据点。使用iOS-Charts作为我项目的图表库是否可以实现相同的效果?

4

5 回答 5

5

你不应该传递一个 nil,它不接受一个 nil 并且 Xcode 会警告它。你应该做的,就是根本不通过它。

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

于 2015-06-11T12:36:43.267 回答
1

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

于 2015-05-29T06:37:18.957 回答
0

这是我根据 daniel.gindi 的回答编写的一个函数(我为 values 数组中为空的条目传递了 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
}
于 2016-05-16T09:11:18.533 回答
0

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

   chartView.xAxis.axisMaximum = 60
   chartView.xAxis.axisMaximum = 90
于 2021-03-11T21:42:17.830 回答
0

丹尼尔提到的最简单的答案是不传递 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)
}
于 2021-11-12T07:11:46.213 回答