我正在使用 iOS 图表插件(折线图),并希望将图表值(每个点上方的数字)设置为十进制数。
该值是双精度值,但图表默认对其进行四舍五入并将其显示为整数。
我已尝试以下但不起作用:
let valueformatter = NumberFormatter()
valueformatter.numberStyle = .decimal
valueformatter.locale = Locale.current
lineChartDataSet.valueFormatter = valueformatter as? IValueFormatter
我尝试了各种其他属性,但它们都没有改变数据集中数字的格式。
如何更改显示数字的格式?
差不多了,只需要添加下面的类:
//For old Charts version
//class ChartValueFormatter: NSObject, IValueFormatter {
//For Charts version 4.0.1
class ChartValueFormatter: NSObject, ValueFormatter {
fileprivate var numberFormatter: NumberFormatter?
convenience init(numberFormatter: NumberFormatter) {
self.init()
self.numberFormatter = numberFormatter
}
func stringForValue(_ value: Double, entry: ChartDataEntry, dataSetIndex: Int, viewPortHandler: ViewPortHandler?) -> String {
guard let numberFormatter = numberFormatter
else {
return ""
}
return numberFormatter.string(for: value)!
}
}
现在使用它作为数字格式化程序:
let numberFormatter = NumberFormatter()
numberFormatter.numberStyle = .decimal
numberFormatter.locale = Locale.current
let valuesNumberFormatter = ChartValueFormatter(numberFormatter: numberFormatter)
lineChartDataSet.valueFormatter = valuesNumberFormatter
lineChartDataSet.valueFont = lineChartDataSet.valueFont.withSize(chartFontPointSize)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)