我正在使用iOS图表构建图表
我试图将浮点数转换为int,但iOS图表只允许在数据条目中使用Floats:
let result = ChartDataEntry(value: Float(month), xIndex: i)
有没有人知道确保只使用整数的方法?
答案 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)