Как добавить пользовательское значение в диаграммы для нижней метки в Swift iOS
Я должен показать [0, 25, 50, 75, 100] со знаком доллара в диаграммах, используя быструю iOS
var xValue = [25.0, 50.0]
var dollarValue = ["$25", "$50", "$75", "$100"]
Добавлено в поле зрения didLoad
rightAxis.valueFormatter = IndexAxisValueFormatter(values: dollarValue)
func updateCharts() {
var chartDataEntry = [BarChartDataEntry]()
let spaceForBar = 10.0;
for i in 0..<xValue.count {
let value = BarChartDataEntry(x: Double(i) * spaceForBar, y: xValue[i])
chartDataEntry.append(value)
}
let chartDataSet = BarChartDataSet(entries: chartDataEntry, label: "10x In-Store ")
chartDataSet.colors = ChartColorTemplates.material()
let chartMain = BarChartData(dataSet: chartDataSet)
chartMain.barWidth = 5.0
horizontalBarChartContainnerView.animate(yAxisDuration: 0.5)
horizontalBarChartContainnerView.data = chartMain
}
Я хотел показать 0 $25$50$75$100 вместо 0 10 20 30 40 50
2 ответа
This code is working fine
public class CustomAxisValueFormatter: AxisValueFormatter {
var labels: [String] = []
public func stringForValue(_ value: Double, axis: AxisBase?) -> String {
let count = self.labels.count
guard let axis = axis, count > 0 else {
return ""
}
let factor = axis.axisMaximum / Double(count)
let index = Int((value / factor).rounded())
if index >= 0 && index < count {
return self.labels[index]
}
return ""
}
}
Добавить внутри viewDidLoad()
rightAxis.axisMaximum = 4
let customAxisValueFormatter = CustomAxisValueFormatter()
customAxisValueFormatter.labels = ["$25", "$80", "$75", "$100"]
Вам нужно создать собственный форматтер
public class CustomAxisValueFormatter: NSObject, AxisValueFormatter {
public func stringForValue(_ value: Double, axis: AxisBase?) -> String {
return "$\(Int(value))"
} }
и установите средство форматирования значений оси на ваше собственное средство форматирования
xAxis.valueFormatter = CustomAxisValueFormatter()