iOS-Charts Float to Integer YAxis

时间:2015-07-09 13:24:29

标签: ios swift ios-charts

我正在使用iOS图表构建图表 IOS CHART

我试图将浮点数转换为int,但iOS图表只允许在数据条目中使用Floats:

      let result = ChartDataEntry(value: Float(month), xIndex: i)

有没有人知道确保只使用整数的方法?

5 个答案:

答案 0 :(得分:24)

对于Swift 3.0和Charts 3.0,您需要启用并设置轴的粒度。

示例:

barChart.leftAxis.granularityEnabled = true
barChart.leftAxis.granularity = 1.0

答案 1 :(得分:9)

您只需要调整NSNumberFormatter ...

示例:

yAxis.valueFormatter = NSNumberFormatter()
yAxis.valueFormatter.minimumFractionDigits = 0

NSNumberFormatter是一个非常强大的类,你可以用它做更多的事情。 : - )

答案 2 :(得分:0)

这对我有用。但是,y轴标签在显示小数字时会变圆,因此如果您要绘制图表,例如1或2,则图表将显示0两次。 (见这里:Force BarChart Y axis labels to be integers?

let numberFormatter = NSNumberFormatter()
numberFormatter.generatesDecimalNumbers = false
chartDataSet.valueFormatter = numberFormatter
// Converting to Int for small numbers rounds weird
//barChartView.rightAxis.valueFormatter = numberFormatter
//barChartView.leftAxis.valueFormatter = numberFormatter

答案 3 :(得分:0)

你可以尝试这个,它对我来说很好用

let formatter = NSNumberFormatter()
formatter.numberStyle = .NoStyle
formatter.locale = NSLocale(localeIdentifier: "es_CL")
BarChartView.leftAxis.valueFormatter = formatter

答案 4 :(得分:0)

Swift4.2; Xcode 10.0:

let numberFormatter = NumberFormatter()
numberFormatter.generatesDecimalNumbers = false
barChart.leftAxis.valueFormatter = DefaultAxisValueFormatter.init(formatter: numberFormatter)