我试图在lineChartView
类上绘制点。然后我在其上绘制了数据,但我看到了一个非常有趣的事情。第二个图是标记的,但不是第一个图。
我正在设置LineChartView
实例并将其命名为lineChart
:
var lineChart: LineChartView = {
var l = LineChartView()
l.translatesAutoresizingMaskIntoConstraints = false
l.backgroundColor = .white
return l
}()
lineChartDataPoints
持有ChartDataEntry
类,其中包含x
和y
值:
var lineChartDataPoints: [ChartDataEntry] = []
我循环遍历xData并将ChartDataEntry
类附加到lineChartDataPoints
。 xData
和yData
变量保持x
和y
值:(这是在其他函数中生成的,而不是这个问题的真正要点)
for i in 0..<xData.count {
let data = ChartDataEntry(x: Double(i + 1), y: Double(yData[i])!)
lineChartDataPoints.append(data)
}
然后我将lineChartDataPoints
添加到LineChartDataSet
:
let lineDataSet = LineChartDataSet(values: lineChartDataPoints, label: "Values")
然后在设置参数后将lineDataSet
添加到lineData
。
lineDataSet.colors = [UIColor.red]
lineDataSet.lineWidth = 5
lineDataSet.circleColors = [UIColor.blue]
lineDataSet.circleRadius = 5
lineData.addDataSet(lineDataSet)
这显然不是因为只有一点。因为我试过这个:
print("data \(lineChartDataPoints)")
// data [ChartDataEntry, x: 1.0, y 1.0, ChartDataEntry, x: 6.0, y 1.0]
肯定有两个点供图表显示,但我很难理解为什么第一个点不会像第二点那样用蓝点标记。
在为Swift 5安装新的Charts框架(版本3.2)之前,我没有遇到这个问题。在图表框架中进行了一些调整。安装最新的补丁(3.3)已经解决了这个问题。因此,请更新到此框架的最新版本以避免此问题。