ios - 使用iOS图表库,当图表中有多条线时从折线图中获取值
问题描述
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
解决方案
不太确定你想达到什么目标,但我会给你一些选择,希望能实现你的目标。
首先,您可以获得突出显示的行的 DataSet。你这样做
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 处所选线的值。
让我知道你是怎么办的。
推荐阅读
- reactjs - Redux-Saga 使用 Immutable.js 并且状态始终为空
- reactjs - 在 Apollo 客户端中,如何在成功突变后使用标头进行 refetchQueries?
- javascript - 如何将矩形平滑地变为圆形?
- angular - 无法在离子 4 中的函数内调用警报
- ios - Swift 4 快捷语法将多个对象(设置了一些属性)添加到数组中?
- c - C:在while循环中超过时间限制?
- java - 使用注释从休眠中的其他表映射数据?
- python - 使用 django 类基础视图将类别列表动态生成到基础模板中
- php - Mysql搜索条件为两行
- c++ - 我可以在不知道文本文件的列数的情况下读取二维数组中的文件吗?