Используя библиотеку диаграмм iOS, получите значение из линейного графика, если на графике более одной линии - PullRequest
0 голосов
/ 22 января 2019
func updatePenValue() {
    if let highlight = chartView.getHighlightByTouchPoint(scrollerView.center) {
        penValueLabel.text = Double.getPenValueInString(value: highlight.y)
        dateTimeLabel.text = Date.get24HourDateString(date:
            Date.getDateFromInterval(timeInterval: highlight.x))
    }
}

В приведенном выше фрагменте кода я получаю выделение по точке касания. Есть ли что-то, что я могу сделать, чтобы получить все значения линий на графике, пожалуйста, предложите мне? На самом деле я хочу, чтобы значение диаграммы в этой конкретной точке для одной строки работало, но иногда для более чем одной строки возвращаются данные строки 1 и иногда строки 2, что мне нужно, так это и данные линии, есть ли что-то, что я могу сделать, чтобы получить значения всех строк ?? Страница GitHub - https://github.com/danielgindi/Charts

1 Ответ

0 голосов
/ 24 января 2019

Не совсем уверен, что вы пытаетесь достичь, но я дам вам несколько вариантов, чтобы, надеюсь, достичь того, чего вы хотите.

Сначала вы можете получить набор данных выделенной строки. Вы делаете это так

let dataSet = chartView?.data?.dataSets[ highlight.dataSetIndex]

Затем возвращается имя метки набора данных и все точки данных, которые будут выглядеть примерно так

Optional(Charts.LineChartDataSet, label: Some Title, 4 entries:
ChartDataEntry, x: 1.0, y 216.0
ChartDataEntry, x: 2.0, y 243.0
ChartDataEntry, x: 3.0, y 310.0
ChartDataEntry, x: 4.0, y 461.0)

Затем вы можете использовать map, чтобы получить только те данные, которые вам нужны

let title = dataSet.map({ $0.label })

Есть и другие опции, такие как

let itemAtXValue = dataSet.map({ $0.entriesForXValue(3.0) }

Это вернет значение выбранной линии на 3,0 от оси X.

Дайте мне знать, как вы поживаете.

...