#ios #swift #ios-charts
#iOS #swift #ios-диаграммы
Вопрос:
Я пытаюсь построить точки в 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
class к 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]
Для отображения графика определенно указаны две точки, но я довольно озадачен тем, почему первая точка не будет помечена синей точкой, как вторая точка.
Ответ №1:
Перед установкой новой платформы диаграмм (версии 3.2) для Swift 5 у меня не было этой проблемы. В Charts framework были внесены некоторые изменения. Установка новейшего патча (3.3) решила эту проблему. Поэтому обновите до последней версии этой платформы, чтобы избежать этой проблемы.