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))
}
}
在上面的代码片段中,我通过触摸点获得突出显示,我可以做些什么来获取图表中的所有线条值,请建议我? 实际上,我想要图表在该特定点的一条线的值,它正在工作,但对于多条线,有时它返回 line1 的数据,有时返回 line2 的数据,我想要的是这两条线的数据,我可以做些什么来获取所有行的值?? GitHub 页面 - https://github.com/danielgindi/Charts
最佳答案
不太确定您想要实现什么目标,但我会给您一些选择,以期实现您的目标。
首先你可以获得突出显示的行的数据集。你这样做
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) }
这将返回 x 轴 3.0 处所选线的值。
让我知道你过得怎么样。
关于ios - 使用iOS图表库,当图表中有多于一条线时从折线图中获取值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54303213/