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)
}
就像 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)
}