如何替换 iOS-图表中标签的值?
how to replace the values of labels in iOS-charts?
我使用IOS-图表来绘制下载速度。我给具有字节值的双精度图表函数数组。它建立图表。但我想在图表标签中显示以兆字节、千字节或字节为单位的值。我可以在帮助 NSByteFormatter
的帮助下转换这些值中的字节。但是有一个问题,构建图表的函数采用单个值数组(例如字节数组),并在图表上的标签中输出相同的值,我试图找到一个解决方案来做到这一点,但我找到 none。我该怎么做?
绘制图表的函数
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
}
您无法更改图表用于绘制的值;但是,您可以提供自己的 NSNumberFormatter
实现来获取所需的格式化值。 yAxis
有 valueFormatter,dataSet
也有
另一种方法是,您将 dataSet 子类化以传递您的值文本数组,并覆盖 renderAxisLabels
或 drawValues
以绘制您想要的文本。
我更喜欢第一个,因为它不涉及库代码
我使用IOS-图表来绘制下载速度。我给具有字节值的双精度图表函数数组。它建立图表。但我想在图表标签中显示以兆字节、千字节或字节为单位的值。我可以在帮助 NSByteFormatter
的帮助下转换这些值中的字节。但是有一个问题,构建图表的函数采用单个值数组(例如字节数组),并在图表上的标签中输出相同的值,我试图找到一个解决方案来做到这一点,但我找到 none。我该怎么做?
绘制图表的函数
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
}
您无法更改图表用于绘制的值;但是,您可以提供自己的 NSNumberFormatter
实现来获取所需的格式化值。 yAxis
有 valueFormatter,dataSet
另一种方法是,您将 dataSet 子类化以传递您的值文本数组,并覆盖 renderAxisLabels
或 drawValues
以绘制您想要的文本。
我更喜欢第一个,因为它不涉及库代码