我正在使用以下lib图:https://github.com/danielgindi/Charts
我有一个折线图。它将在x轴上显示值。但是现在它以22.0
之类的十进制显示。但我想要像22
这是我的代码:
func updateGraphMaster(xAxisLabel: String) {
var lineChartEntry = [ChartDataEntry]()
for num in 0..<chartDataDoubles.count {
let value = ChartDataEntry(x: Double(num), y: chartDataDoubles[num])
lineChartEntry.append(value)
}
let lineChartDataSet = LineChartDataSet(entries: lineChartEntry, label: xAxisLabel)
lineChartDataSet.colors = [NSUIColor.white]
lineChartDataSet.highlightEnabled = true
lineChartDataSet.highlightColor = UIColor.white
lineChartDataSet.drawVerticalHighlightIndicatorEnabled = false
lineChartDataSet.drawHorizontalHighlightIndicatorEnabled = false
lineChartDataSet.drawValuesEnabled = true
lineChartDataSet.drawCirclesEnabled = false
lineChartDataSet.drawCircleHoleEnabled = false
let gradient = getGradientFilling()
lineChartDataSet.fill = Fill.fillWithLinearGradient(gradient, angle: 90.0)
lineChartDataSet.drawFilledEnabled = true
let data = LineChartData()
data.addDataSet(lineChartDataSet)
data.setDrawValues(false)
data.setValueTextColor(NSUIColor.white)
let formatter = NumberFormatter()
formatter.maximumFractionDigits = 0
formatter.numberStyle = .none
formatter.locale = .current
//lineChartDataSet.valueFormatter = DefaultValueFormatter(formatter: formatter)
data.setValueFormatter(DefaultValueFormatter(formatter: formatter))
chartView.data = data
chartView.xAxis.valueFormatter = DefaultAxisValueFormatter(formatter: formatter)
}
在这里,我使用setValueFormatter并将数据附加到图表视图。但是它仍然以十进制显示。不是整数。
答案 0 :(得分:0)
您要将formatter.maximumFractionDigits
设置为零。
答案 1 :(得分:0)
如果要编辑数据集值格式本身而不是轴,请尝试以下操作:
data.valueFormatter = DefaultValueFormatter(decimals: 0)
我希望它能起作用!
您似乎有多个数据集要显示在图表上?
答案 2 :(得分:0)
在您向我们展示屏幕截图之前,您的问题一直不清楚。
您并不是要设置要绘制的实际绘制值,而是要设置单击点时出现的标记的标签显示的值的格式。对于该实现,我必须假定您使用了Charts-Demo中的自定义类BalloonMarker
,该类在显示之前不会格式化其文本的值。我能够重现您的问题并解决它:请注意BalloonMarker.swift
中的184-187
行:
184 open override func refreshContent(entry: ChartDataEntry, highlight: Highlight)
185 {
186 setLabel(String(entry.y))
187 }
第186
行需要替换为
186 setLabel(String(format: "%.0f", entry.y))
那应该可以解决您的问题。我在下面附上我的复制品并为您修复:
复制问题
已修复
此外,如果您希望确保x轴仅显示整数,则需要执行以下操作:
let formatter = NumberFormatter()
formatter.maximumFractionDigits = 0
formatter.numberStyle = .none
formatter.locale = .current
chartView.xAxis.valueFormatter = DefaultAxisValueFormatter(formatter: formatter)