如何替换iOS图表中的标签值?

Ale*_*tev 0 charts swift ios-charts

我使用IOS图表来绘制下载速度。我给具有字节值的double的图表函数数组赋值。它建立图表。但是我想在图表标签中显示以兆字节,千字节或字节为单位的值。我可以借助help将这些值转换为字节NSByteFormatter。但是有一个问题,构建图表的函数采用单个值数组(例如字节数组),并在图表上的标签中输出相同的值,我试图找到一种解决方案,但是一无所获。我怎样才能做到这一点?

绘制图表的功能

   func setSendChart(description: [String], value: [Double]) {
    var chartDataEntryArray = [ChartDataEntry]()

    for item in 0..<description.count {
        let chartEntry = ChartDataEntry(value: value[item], xIndex: item)
        chartDataEntryArray.append(chartEntry)
    }

    let dataSet = LineChartDataSet(yVals: chartDataEntryArray, label: "")
    dataSet.drawCircleHoleEnabled = false
    dataSet.drawCirclesEnabled = false
    dataSet.drawCubicEnabled = true
    dataSet.drawFilledEnabled = true
    dataSet.drawValuesEnabled = false

    dataSet.fillColor = UIColor(red: 47/255, green: 206/255, blue: 255/255, alpha: 1.0)

    let chartData = LineChartData(xVals: description, dataSet: dataSet)
    sendChartView.data = chartData
}
Run Code Online (Sandbox Code Playgroud)

Win*_*ero 5

您无法更改图表用来绘制的值;但是,您可以提供自己的NSNumberFormatter实现以获取所需的格式化值。yAxis有valueFormatter,所以有dataSet

另一种方法是,将dataSet子类化以传递您的值文本数组,并覆盖renderAxisLabelsdrawValues绘制所需的文本。

我更喜欢第一个,因为它不涉及库代码