我正在 iOS Swift 中制作条形图
代码:
let chartDataSet: BarChartDataSet!
chartDataSet = BarChartDataSet(values: dataEntries, label: "Rupee Date-->")
chartDataSet.colors = [AppColors.barChartColor]
chartDataSet.highlightColor = AppColors.barChartHighlightColor
chartDataSet.valueTextColor = UIColor.black
chartDataSet.values = dataEntries
let chartData = BarChartData(dataSet: chartDataSet)
chartData.setDrawValues(true)
cell.barChartView.drawValueAboveBarEnabled = true
cell.barChartView.xAxis.valueFormatter = IndexAxisValueFormatter(values:monthDateArray as! [String])
cell.barChartView.animate(xAxisDuration: 1.0, yAxisDuration: 1.0)
cell.barChartView.data = chartData
cell.barChartView.xAxis.granularity = 1.0
cell.barChartView.setVisibleXRange(minXRange: 7, maxXRange: 7)
cell.barChartView.leftAxis.axisMinimum = 0
cell.barChartView.drawValueAboveBarEnabled = true
问题
- 如何在条形上方显示值,例如 4.0、3.0 等。
- 柱线始终在 0 位置开盘。我希望该栏始终在当前日期位置打开,并且在滚动时我们可以显示所有数据。
最佳答案
尝试这个扩展:-
//Bar chart extensio to set custom xAxia and yAxis
extension BarChartView {
private class BarChartFormatter: NSObject, IAxisValueFormatter {
var labels: [String] = []
func stringForValue(_ value: Double, axis: AxisBase?) -> String {
return labels[Int(value)]
}
init(labels: [String]) {
super.init()
self.labels = labels
}
}
func setBarChartData(xValues: [String], yValues: [String], label: String) {
var dataEntries: [BarChartDataEntry] = []
for i in 0..<yValues.count {
let dataEntry = BarChartDataEntry(x: Double(i), y: Double(yValues[i])!)
dataEntries.append(dataEntry)
}
let chartDataSet = BarChartDataSet(values: dataEntries, label: label)
chartDataSet.colors = [NSUIColor(red: 0/255.0, green: 110/255.0, blue: 194/255.0, alpha: 1.0)]
chartDataSet.valueFont = NSUIFont.systemFont(ofSize: 13)
let chartData = BarChartData(dataSet: chartDataSet)
let chartFormatter = BarChartFormatter(labels: xValues)
let xAxis = XAxis()
xAxis.valueFormatter = chartFormatter
self.xAxis.valueFormatter = xAxis.valueFormatter
self.drawValueAboveBarEnabled = true
self.data = chartData
}
}
通话功能:-
@IBOutlet var chartView: BarChartView!
...
chartView.setBarChartData(xValues: dates, yValues: Leads, label: "Leads")
其中日期和潜在客户是字符串数组
关于IOS 条形图 - 如何在条形图上显示值(1.0、2.0 等)标签并在条形图滚动上显示特定值(如 3 - 7),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50290653/