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))
}
}
在上面的代码片段I中,我通过接触点获得了亮点,我可以做些什么来获取图中的所有线条值,请提出建议? 实际上,我想要图表在该特定点的值,因为它正在工作的一条线,但是对于某条以上的线,有时它返回的是线1的数据,有时是线2的数据,我想要的是线的两个数据,有什么我能做得到的所有行的值? GitHub页面-https://github.com/danielgindi/Charts
答案 0 :(得分:0)
不太确定您要达到的目标,但我会给您一些选择,以期达到您的目标。
首先,您可以突出显示该行的数据集。你是这样的
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处的选定线的值。
让我知道你过得怎么样。