ios - 使用iOS图表库,当图表中有多于一条线时从折线图中获取值

标签 ios swift ios-charts

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/

相关文章:

ios - UiCollectionView 间距问题 - swift

ios - 如何成功传递字符串数组作为参数 alamofire

iOS CoreML mlmodel文件自动生成swift版模型类文件

ios - 我可以从我的 iOS 应用程序启用/禁用移动数据吗?

iOS 图表未显示所有 xAxis 值

ios - 通过两个不同的带部分的 NSFetchedResultsControllers 的单 TableView

ios - Xcode 中捏合缩放行为异常

iphone - 内存泄漏。仪器认为一切都很好

ios - 如何在 iOS-Charts 中显示重新加载文本?

iOS 图表 : Select the data point programmatically but get the highLight is NAN